使用字典中的键创建一个文本文件,其中包含多个值pandas .to_csv()

问题描述 投票:0回答:3

我一直在为该词典编辑信息:

{'Uranus':['2750','3000','2880'],'Mercury':['46','70','57'],'Earth':['147','152 ','150'],'金星':['107','109','108'],'火星':['205','249','228'],'土星':['1350 ','1510','1430'],'木星':['741','817','779'],'海王星':['4450','4550','4500'],'冥王星' :['4440','7380','5910']}

我现在尝试写入文本文件,每一行是一个键,并且每个键和值仅用逗号分隔,因此输出文件类似于此:

Uranus,2750,3000,2880
Mercury,46,70,57
Earth,147,152,150
etc

这是我在下面的内容:

   with open(OUTPUT_FILE, "w") as s:
        for key in sol:
            cap_every_other(key)
            combined = [key, sol[key[:]]]
            complete = ', '.join(combined)
            s.write(complete + '\n')

尽管如此,值列表发送的不是一个字符串的错误标志。如何组合这些键和值以匹配格式?谢谢您的帮助。我肯定已经重写了50次。

python list dictionary join file-io
3个回答
0
投票
您无法通过以下方式在列表中组合字符串:要么你做。你可以做[key] + item或(效率较低)[key, *item]

您可以使用items()直接通过键和值进行迭代

with open(OUTPUT_FILE, "w") as s: for key, value in sol.items(): cap_every_other(key) # not sure what this line is supposed to do complete = ', '.join([key] + value) s.write(complete + '\n')


0
投票
使用pandaspandas

.to_csv()


0
投票
您应该只使用.to_csv()模块中的import pandas as pd data = your data from question # create dataframe df = pd.DataFrame.from_dict(data, orient='index') # save to csv df.to_csv('data.csv', sep=',', header=False) 。您可以使用csv.writer将每一行写为项目列表。

csv.writer

output.csv

csv
© www.soinside.com 2019 - 2024. All rights reserved.