Python 如何读取字典行并写入CSV文件
我有一个数据文件,格式如下Python 如何读取字典行并写入CSV文件,python,Python,我有一个数据文件,格式如下 {"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时,结果为0,否则,取第一个数字除以[]中的第二个数字 谢谢 您应该从学习如何打开文件和读取行开始
{"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时,结果为0,否则,取第一个数字除以[]中的第二个数字
谢谢 您应该从学习如何打开文件和读取行开始 之后,学习如何提取具有特定格式的字符串的子字符串 然后学习如何在文件中写入
有了这些链接,我想你可以尝试一些东西,然后返回这里,用你的代码创建一个问题。如果没有自己的代码,您会要求我们为您编程。您应该从学习如何打开文件和读取行开始 之后,学习如何提取具有特定格式的字符串的子字符串 然后学习如何在文件中写入
有了这些链接,我想你可以尝试一些东西,然后返回这里,用你的代码创建一个问题。没有您自己的代码,您要求我们为您编程。首先,数据似乎是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]}]
更新分数(假设您确实想要执行除法):
(如果需要,上行将生成除法操作的文本版本)
接下来,您可以使用对象将输出写入CSV文件
import csv
with open('output', 'w') as f:
writer = csv.DictWriter(f, fieldnames=['Age', 'Name', 'Score'])
writer.writeheader()
writer.writerows(dicts)
最后,输出文件应包含:
Age,Name,Score
14,David,0
12,Jason,0
年龄、姓名、分数
14,大卫,0
12岁,杰森,0岁
首先,数据似乎是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]}]
更新分数(假设您确实想要执行除法):
(如果需要,上行将生成除法操作的文本版本)
接下来,您可以使用对象将输出写入CSV文件
import csv
with open('output', 'w') as f:
writer = csv.DictWriter(f, fieldnames=['Age', 'Name', 'Score'])
writer.writeheader()
writer.writerows(dicts)
最后,输出文件应包含:
Age,Name,Score
14,David,0
12,Jason,0
年龄、姓名、分数
14,大卫,0
12岁,杰森,0岁
发布您的尝试..您的文件格式与上面完全相同吗?发布您的尝试..您的文件格式与上面完全相同吗?谢谢,我确实尝试编写了一些代码,但收到了一些错误消息,我担心这些错误消息与我的源文件有关,我担心我的错误消息误导了答案。谢谢,我确实尝试编写了一些代码,但得到了一些错误消息,我担心这与我的源文件有关,我担心我的错误消息误导了我的答案。