Python有以下问题。你知道吗
给定以下JSON对象-我想
CSV标题
firstName,lastName,managersEmail,contractStartsDate
CSV内容
firstName,lastName,managersEmail,contractStartsDate
nameOfPerson,lastNameofPerson,someManager,2000-01-01
nameOfPerson2,lastNameofPerson2,someManager2,2000-02-02
我的targetJSON.json文件你知道吗
data = '{"details":[
{"firstName":"nameOfPerson,"lastName":"lastNameofPerson","managersEmail":"someEmail","managersName":"someManager",
"departmentName":"someDepartment",
"position":"somePosition",
"contractStartsDate":"2000-01-01",
"contractEndDate":"2000-01-01",
"company":"someCompany",
"division":"someDivision",
"preferredName":"Unknown"},
{"firstName":"nameOfPerson2","lastName":"lastNameofPerson2","managersEmail":"someEmail2","managersName":"someManager2",
"departmentName":"someDepartment2",
"position":"somePosition2",
"contractStartsDate":"2000-02-02",
"contractEndDate":"2000-02-02",
"company":"someCompany",
"division":"someDivision2",
"preferredName":"Unknown"}
]}'
我的代码是这样的
with open('targetJSON.json', 'r') as f:
distros_dict = json.load(f)
for distro in distros_dict:
print(distro['managersEmail'])
data_file = open("targetJSON.json", "r")
values = json.load(data_file)
data_file.close()
with open("usersData.csv", "wb") as f:
wr = csv.writer(f)
for data in values:
value = data["managersEmail"]
value = data["firstName"]
for key, value in data.iteritems():
#wr.writerow([key, value])
wr.writerow([key.encode("utf-8"), value.encode("utf-8")])
但结果完全是胡说八道, CSV包含所有混淆的内容:-(
当在python3.x中使用
csv.writer()
时,需要使用newline=""
,wb
用于python2.x版本。你知道吗使用您给出的示例JSON,您只需要遍历头字段并从
details
中的每个条目创建一行。例如:给你:
如果JSON数据包含重复的条目,那么在开始写入行之前,必须首先加载所有数据并删除重复项。你知道吗
或者,您可以使用
csv.DictWriter
,如下所示:要从输入JSON文件读取数据,可以执行以下操作:
如果需要删除相同的行,请将最后一行替换为:
相关问题 更多 >
编程相关推荐