gpt4 book ai didi

python - 如何读取字典行并写入 CSV 文件

转载 作者:太空宇宙 更新时间:2023-11-04 10:19:40 26 4
gpt4 key购买 nike

我有一个数据文件,格式是这样的

{"Name":"David","Age":"14","Score":[0,1]}
{"Name":"Jason","Age":"12","Score":[0,0]}

我的问题是:1) 我如何读取此文件并转换为 CSV

Name,Age,Score
David,14,0/1
Jason,12,0

2) 如何将[0,1]转换为0/1,[0,0]转换为0,即当分母为零时,结果为0,否则取第1个数除以[] 中的第二个数字

谢谢!!

最佳答案

一开始,数据似乎是 JSON 编码的,因此您可以使用 json模块将其读入字典列表:

import json

with open('input') as f:
dicts = [json.loads(line) for line in f]

对于您的示例数据,dicts 将设置为:

>>> from pprint import pprint
>>> pprint(dicts)
[{u'Age': u'14', u'Name': u'David', u'Score': [0, 1]},
{u'Age': u'12', u'Name': u'Jason', u'Score': [0, 0]}]

更新分数(假设你真的想执行除法):

for d in dicts:
score = d['Score']
d['Score'] = score[0]/score[1] if score[1] != 0 else 0
#d['Score'] = '{}/{}'.format(score[0], score[1]) if score[1] != 0 else '0'

(上面的行将生成除法运算的文本版本,如果需要的话)

接下来您可以使用 csv.DictWriter对象将输出写入 CSV 文件。

import csv

with open('output', 'w') as f:
writer = csv.DictWriter(f, fieldnames=['Age', 'Name', 'Score'])
writer.writeheader()
writer.writerows(dicts)

最后,您的输出文件应包含:

Age,Name,Score14,David,012,Jason,0

关于python - 如何读取字典行并写入 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33049636/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com