[英]Sorting a Dictionary and writing it to a CSV file
我有一個字典,元組作為鍵,列表作為值
myDict = {
(1, 9078752378): [('Smith', 'Bob'), 'Head guard'],
(2, 9097615707): [('Burdell', 'George'), 'Lifeguard'],
(3, 9048501430): [('Smith', 'Amanda'), 'Lifeguard'],
(4, 9026450912): [('Brown', 'John'), 'Lifeguard'],
(5, 9027603006): [('Flowers', 'Claudia'), 'Lifeguard'],
(6, 9055520890): [('Smith', 'Brown'), 'Head guard'],
(7, 9008197785): [('Rice', 'Sarah'), 'Lifeguard'],
(8, 9063479070): [('Dodd', 'Alex'), 'New Lifeguard'],
(9, 9072301498): [('Sparrow', 'Jack'), 'New Lifeguard'],
(10, 9084389677): [('Windsor', 'Harry'), 'New Lifeguard']
}
我完全堅持如何將此字典寫入csv文件,以此格式編寫
1 9078752378 Smith Bob Head guard
..等等到9
請幫忙!!!
假設您的格式一致,這應該可以解決問題:
with open('youfile.csv', 'w') as f:
for k,v in sorted(myDict.iteritems()):
f.write('{} {} {} {} {}\n'.format(k[0], k[1], v[0][0], v[0][1], v[1]))
我應該警告你輸出格式中的潛在問題,如果你需要再次解析它,你想引用值,或者使用不同的分隔符,例如:
1 9078752378 Smith Bob "Head guard"
with open("CSV", 'w') as f:
f.write('\n'.join([",".join(map(str,[a,b,c,d,e])) for (a, b), ((c, d), e) in sorted(myDict.items())]))
說明 -
sorted(myDict.items())
將根據鍵對字典進行排序。
for (a, b), ((c, d), e) in sorted(myDict.items())
將解壓縮你的值。
",".join(map(str,[a,b,c,d,e]))
將用逗號連接解壓縮的值。
[",".join(map(str,[a,b,c,d,e])) for (a, b), ((c, d), e) in sorted(myDict.items())]
是上面逗號連接值的列表理解。
'\\n'.join([",".join(map(str,[a,b,c,d,e])) for (a, b), ((c, d), e) in sorted(myDict.items())]
將使用換行符加入上面的列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.