我试图添加多个列表到一个单一的字典键,而不合并它们,并转换为csv得到低于预期的结果
你知道吗列表.txt包含 [{A:1,B:2,C:3},{A:5,D:8,E:7,C:2}][{A:12,B:23,C:100,D:23}]
然后用固定的列标题将它们转换成csv
预期结果
A,B,C,D,E,F
1,2,3,,,
5,,2,8,7,
12,23,100,23,,
这是我的密码-
csv_columns=A,B,C,D,E,F
listfromtextfile = eval(open("list").read())
def DictToCSV(csv_file,csv_columns,listIndex):
try:
with open(csv_file, 'ab') as csvfile:
writer = csv.DictWriter(csvfile, fieldnames=csv_columns)
HeadWrite = csv.writer(csvfile)
HeadWrite.writerow(csv_columns)
for data in listIndex:
writer.writerow(data)
except IOError as (errno, strerror):
print("I/O error({0}): {1}".format(errno, strerror))
return
for i in range(len(listfromtextfile)):
DictToCSV(csv_file,csv_columns,listfromtextfile[i])
给出csv中最后一个listfromtextfile[i]字典值 但在这里,我无法找到创建预期csv的逻辑。你知道吗
也许有一种更优雅的方法可以做到这一点,但是有没有什么理由不能将键值建立为一个列表,然后在添加项时对其进行包装?你知道吗
参考@Tiny.D解决方案,这里是我在python2.6.x中得到的工作代码
假设您的
source.txt
中有有效内容:-选项1:
逐行读取文件,并转换为列表,扩展为一个列表作为输出(
listfromtextfile
)。生成headers
,其中包含listfromtextfile
中的所有键(删除重复键)。生成包含所有值的row_list
,作为listfromtextfile
中每个元素的列表。你知道吗之后,您可以使用
csv
模块将标题行和值行写入result.csv
:-选项2:
使用
pandas
生成dict as dataframe的列表,然后调用to_csv
写入result.csv
:result.csv
将是您想要的:相关问题 更多 >
编程相关推荐