python將多個dict轉成list的合集


無意間看博客看到pandas 和 reduce與lambda的用法,先mark一下

1.pandas

>>> import pandas as pd
>>> data = [
    {'A': 'A1','B': 'B2','C': 'C3','D': 'D4'},
    {'A': 'AA1','C': 'CC3','D': 'DD4','E': 'EE5'},
    {'A': 'AAA1','B': 'BBB2','C': 'CCC3','D': 'DDD4','E': 'EEE5'}
]
>>> df=pd.DataFrame(data).fillna('null')
>>> ls=df.values.tolist()
>>> ls.insert(0,df.columns.tolist())
>>> ls
[['A', 'B', 'C', 'D', 'E'], ['A1', 'B2', 'C3', 'D4', 'null'], ['AA1', 'null', 'CC3', 'DD4', 'EE5'], ['AAA1', 'BBB2', 'CCC3', 'DDD4', 'EEE5']]
>>> 

2.reduce

data = [
    {'A': 'A1','B': 'B2','C': 'C3','D': 'D4'},
    {'A': 'AA1','C': 'CC3','D': 'DD4','E': 'EE5'},
    {'A': 'AAA1','B': 'BBB2','C': 'CCC3','D': 'DDD4','E': 'EEE5'}
]

keys = set(reduce(lambda x, y: x + y, [_.keys() for _ in data]))

lst = [[_[key] if key in _ else 'NULL' for key in keys] for _ in data]
lst.insert(0, list(keys))

print lst

轉載:https://segmentfault.com/q/1010000010362346

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM