Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何读取字典行并写入CSV文件_Python - Fatal编程技术网

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岁
发布您的尝试..您的文件格式与上面完全相同吗?发布您的尝试..您的文件格式与上面完全相同吗?谢谢,我确实尝试编写了一些代码,但收到了一些错误消息,我担心这些错误消息与我的源文件有关,我担心我的错误消息误导了答案。谢谢,我确实尝试编写了一些代码,但得到了一些错误消息,我担心这与我的源文件有关,我担心我的错误消息误导了我的答案。