![](/img/trans.png)
[英]Convert a dictionary to a table with column names using base Python without Pandas
[英]convert dictionary to csv in python without using pandas?
我有一个看起来像这样的词典列表:
{'match':['football','cricket','baseball'],'player':['2','11','8']}
我想将这本字典转换成 csv 但不使用 pandas。
我的代码:
import csv
my_dictionary = {'match':['football','cricket','baseball'],'player'['2','11','8']}
with open('data.csv', 'w') as f:
for key in my_dictionary.keys():
f.write("%s, %s\n" % (key, my_dictionary[key]))
output 我想看看:
match player
football 2
cricket 11
baseball 8
因此,如果您想使用您的技术,您可以首先将所有键写入第一行,如 header,然后遍历列表中的剩余行,如下所示:
import csv
my_dictionary = {'match':['football','cricket','baseball'],'player':['2','11','8']}
with open('data.csv', 'w') as f:
headers = ', '.join(my_dictionary.keys()) + '\n'
f.write(headers)
for row in zip(*my_dictionary.values()):
string_row = ', '.join(row) + '\n'
f.write(string_row)
Output:
match, player
football, 2
cricket, 11
baseball, 8
使用 zip 将这 2 个列表 ( 'match','player'
) 组合成一个元组列表。 用,
加入每个元组。 然后只需将其中的每一个写入文件即可。
import csv
my_dictionary = {'match':['football','cricket','baseball'],'player':['2','11','8']}
zipList = list(zip(my_dictionary['match'],my_dictionary['player']))
zipList = [','.join(x) for x in zipList]
with open('data.csv', 'w') as f:
headers = ','.join(my_dictionary.keys()) + '\n'
f.write(headers)
for each in zipList:
f.write("%s\n" % (each))
为避免使用 Pandas,请使用内置的 CSV 库:
import csv
my_dictionary = {'match':['football','cricket','baseball'],'player':['2','11','8']}
with open('output.csv', 'w', newline='') as f_output:
csv_output = csv.writer(f_output)
csv_output.writerow(my_dictionary.keys())
csv_output.writerows([*zip(*my_dictionary.values())])
这将产生output.csv
包含:
match,player
football,2
cricket,11
baseball,8
您的字典键为您提供 header,如果您使用标准的*zip(*xxx)
技巧来转置条目,您可以将所有行写在一个 go 中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.