【发布时间】:2020-09-10 15:13:47
【问题描述】:
我正在尝试将 csv 文件转换为嵌套的 json:我正在寻找类似这样的 json 输出。
这是我的 json 数据:
[
{
"RID":"test",
"UId":"userl@gmail.com",
"Ugroup":"abc",
"Query":[
{
"Status":"query1",
"ECategory":"error1"
},
{
"Status":"query2",
"ECategory":"error2"
}
],
"SuccesfulQ":"7",
"FailedQ":"0"
},
{
"RID":"test2",
"Uld":"user2@gmail.com",
"Ugroup":"xyz",
"Query":[
{
"Statement":"query3",
"ECategory":"error3"
},
{
"Statement":"query4",
"ECategory":"error4"
}
],
"SuccesfulQ":"7",
"FailedQ":"0"
}
]
这是我的 CSV 文件
[csv 文件][2]
RID,UId,Ugroup,Query.Statement,Query.ECategory,SuccesfulQ,FailedQ
test,user1@gmail.com,abc,query1,error1, 7, 0
test,user1@gmail.com,abc,query2,error2 7, 0
test2,user2@gmail.com,xyz,query3,error3 7, 0
test2,user2@gmail.com,xyz,query4,error4 7, 0
使用下面的代码,我得到的是普通的 json,而不是嵌套的:
import csv
import json
def make_json(csvFilePath):
data = {}
with open(csvFilePath, encoding='utf-8') as csvf:
a = [{k:v for k,v in row.items()} for row in csv.DictReader(csvf, skipinitialspace=True)]
print(a)
csvFilePath = r'table.csv'
make_json(csvFilePath)
【问题讨论】:
-
请将代码和数据包含为 txt 而非图像,请参阅指南
-
是否总是有一行额外的数据(每个用户 2 行)还是可以有多行?
-
感谢您的回复@Mike67。 SQLQuery.Status 和 SQLQuery.ECategory 是嵌套列。只有这两列会有一个额外的值。更多信息请点击 json 文件查看上面的 json 架构链接。