【问题标题】:How do I convert the rows of a csv file to dictionaries?如何将 csv 文件的行转换为字典?
【发布时间】:2023-02-24 09:46:13
【问题描述】:

当我让他澄清问题时,我的教授没有帮助,助教也没有回复我的电子邮件。

输出应该是这样的:

{'ID': '1', 'Name': '"Ying Pang"', 'Age': '18'}
{'ID': '2', 'Name': '"Matthew De La Rosa"', 'Age': '22'}
{'ID': '3', 'Name': '"Camille Jenkins"', 'Age': '20'}

我了解如何通过执行以下操作将 csv 行打印为字典:

myFile = open('foo.csv', encoding='utf-8')
headers = next(myFile).rstrip().split(',') #headers
text = myFile.readline()
while text != "":
    print((dict(zip(headers, text.rstrip("\n").split(",")))))
    text = myFile.readline() #updates to next line

但我不太明白如何将其保存到变量或字典中。我相信我需要它作为某种输出,而不是作为文件的输出。

【问题讨论】:

  • 所以你知道如何将行打印为字典,但你不知道如何将它们转换为字典......我没有关注。如果将它们作为字典打印,则必须已经将它们转换为字典。
  • 而不是这样做 print: print((dict(zip(headers, text.rstrip("\n").split(","))))) 你可以简单地写 "myvar = dict(zip(headers, text. rstrip("\n").split(",")))" 会将字典放入 myvar。
  • 你可以使用csv.DictReader吗?这使它几乎成为一条线。
  • @MikeScotty 我相信它们必须保存在某个地方,因为我们将不得不在下一步中将其转换为字典列表。当我给他发电子邮件澄清打印出来是否可以时,我的教授没有帮助。
  • @Samwise 不。除了 json 之外,我们不允许将任何模块/库用于此作业的另一部分。我之前使用 csv 和 pandas 完成了整个作业,但现在我正在修改我的代码以在没有它们的情况下运行。

标签: python csv dictionary


【解决方案1】:

我强烈建议您使用 pandas 打开您的 csv 文件。然后你可以利用内置的 to_dict 方法将数据导出到字典中:

import pandas as pd
df = pd.read_csv('foo.csv')
df.to_dict('series')

如果你想将数据输出到一个文件,那么你可以使用to_json方法。

【讨论】:

  • 我忘了提到我们不允许使用 pandas 库/模块来完成这项任务。
猜你喜欢
  • 2020-12-24
  • 1970-01-01
  • 2018-08-13
  • 2021-12-22
  • 2017-03-27
  • 2016-01-28
  • 2021-12-18
  • 2011-03-06
  • 2021-12-22
相关资源
最近更新 更多