【问题标题】:How to fit a Dictionary into a CSV file with all the values in the keys in a different column within the same row in python如何将字典放入 CSV 文件中,其中键中的所有值位于 python 中同一行内的不同列中
【发布时间】:2017-03-10 20:36:20
【问题描述】:

我有一本字典,我希望将它保存到一个 csv 文件中。但是,使用下面的代码,值(ei。键中的所有数据都放在一个单元格中)。但是,我要求每个值位于其所属键的同一行内的不同列中。

csvPatientListFinal = csv.writer(open('PatientListFinal.csv','wb'))
    for key, value in PatientList.items():
        csvPatientListFinal.writerow([key, value])

我尝试过,但我的努力没有成功。

谢谢

更新 1:

抱歉打错了,但是代码可以正常工作(它是在没有错别字的脚本中编写的),但这不是所需的输出。我的脚本创建的字典有 14 个键,每个键中有 721 个项目。它们是案例主题的数据库。 Dictionary 的一个示例如下:我使用“|”所以代表每个单元格之间的线条,我的错误。字典中的数据如下所示:

PatientList = {'code' : ['1','2','3','4','5',6], 'name' : ['aho','awd','faw','fas','gas','gdas','fasw'] , 'surnames' : ['awds','fhtt','hfr','hyk','uyr','rtyd'], 'ID' : ['123','345','654','234','645','354'], 'description' : ['a long text','a long text','a long text','a long text','a long text','a long text'] }. 

csv表格格式应该是(“|”是一行中每个单元格之间的空格)

(标题)A|B|C

(第 1 行)1|A|卡罗

(第 2 行)2|B|al

但我的输入是

(一个单元格中的标题)A,B,C

(一个单元格中的第 1 行)1 个卡罗尔

(一个单元格中的第 2 行)2 B al

所有在同一列下,对应于它们所属的键。这是所需输出的图像表示:

我现在正在尝试以下代码:

csvPatientListFinal = csv.writer(open('PatientListFinal.csv','wb'))
    for header in PatienList.keys():
        csvPatientListFinal.writerow(izip[header, value for value in PatientList[header]])

但是,它表示“值换值”区域中的语法无效错误。我正在尝试找出原因。

有没有更好的方法来实现我想要的输出?代码有什么问题吗(除了我目前无法猜测为什么会出现的语法错误)?

感谢您的帮助

【问题讨论】:

    标签: python python-2.7 csv dictionary export-to-csv


    【解决方案1】:

    你可以这样做。对值列表的长度进行迭代(假设它们的长度都与code 中的长度相同),并在键上进行嵌套迭代。

    with open('PatientListFinal.csv', 'w') as fp:
        csvPatientListFinal = csv.writer(fp)
        csvPatientListFinal.writerow(PatientList.keys())
        for i in range(len(PatientList['code'])):
            csvPatientListFinal.writerow([j[i] for j in PatientList.values()])
    

    如果订单对您很重要,您可能需要考虑使用OrderedDict。目前无法保证列的存储顺序与输入时的顺序相同。

    【讨论】:

    • 谢谢 Ste,这是我写问题时的错字,但代码不包含该类型。谢谢你指出。我已经在我自己的问题上更新了我的进度,你介意看一下吗?看看你能不能帮帮我?
    • 我使用“|”所以代表每个单元格之间的线条,我的错误。 PatientList = {'code' : ['1','2','3','4','5',6],'name' : ['aho','awd','faw','fas ','gas','gdas','fasw'] , '姓氏' : ['awds','fhtt','hfr','hyk','uyr','rtyd'], 'ID' : [ '123','345','654','234','645','354'],'description' : ['a long text','a long text','a long text','a长文本','长文本','长文本'] }
    • 抱歉,我误会了。这个应该现在为您解决它!
    猜你喜欢
    • 2012-11-19
    • 1970-01-01
    • 1970-01-01
    • 2016-11-30
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2019-10-31
    • 1970-01-01
    相关资源
    最近更新 更多