python - 将 csv 数据转换为嵌套的 json 格式
问题描述
我有一个csv数据:
dataf = pd.DataFrame{'title':['tit1', 'tit1', 'tit2' 'tit2','tit3'], 'context':['con1', 'con1', 'con2', 'con2 ','con3'],'答案':['text1','text2','text3','text4','text5'],'问题':['que1','que2','que3', 'que4', 'que5'], 'id':['DDA', 'SAV', 'AFS', 'ML', 'MLI']}
我想使用 python 将其转换为嵌套的 json 格式,如下所示
[
{
"title": "tit1",
"paragraph": [
{
"context": "con1",
"qas": [
{
"answers": "text1",
"question": "que1",
"id": "DDA"
},
{
"answers": "text2",
"question": "que2",
"id": "SAV"
}
]
}
]
},
{
"title": "tit2",
"paragraph": [
{
"context": "con2",
"qas": [
{
"answers": "text3",
"question": "que3",
"id": "AFS"
},
{
"answers": "text4",
"question": "que4",
"id": "ML"
}
],
"context": "con3",
"qas": [
{
"answers": "text5",
"question": "que5",
"id": "MLI"
}
]
}
]
},
]
它继续用于各种其他数据
解决方案
这对你有用吗?
df = []
cont = 0;
for index, row in dataf.iterrows():
if cont == 0:
cont +=1
continue
dict = {}
list = []
item = {}
qas = {}
qas['answers'] = row[2]
qas['question'] = row[3]
qas['id'] = row[4]
item['context'] = row[1]
item['qas'] = []
item['qas'].append(qas)
dict[dataf[0][0]] = row[0]
dict['paragraph'] = []
dict['paragraph'].append(item)
#print(dict)
df.append(dict)
print(df)
输出:
[{'title': 'tit1', 'paragraph': [{'context': 'con1', 'qas': [{'answers': 'text1', 'question': 'que1', 'id': 'DDA'}]}]}, {'title': 'tit1', 'paragraph': [{'context': 'con1', 'qas': [{'answers': 'text2', 'question': 'que2', 'id': 'SAV'}]}]}, {'title': 'tit2', 'paragraph': [{'context': 'con2', 'qas': [{'answers': 'text3', 'question': 'que3', 'id': 'AFS'}]}]}, {'title': 'tit2', 'paragraph': [{'context': 'con2', 'qas': [{'answers': 'text4', 'question': 'que4', 'id': 'ML'}]}]}]
推荐阅读
- asp.net - 如何在 VB.NET 中从会话中存储和检索 asp:fileupload
- php - 如何彻底删除 Dokan 插件?
- javascript - 早午餐不编译 uikit js 文件
- python - 如何使用 python 创建表?
- sql - 如何将两列连接到电子邮件地址中
- email - Docusign 电子邮件身份验证
- msbuild - Wix 安装程序不会在 buildserver 上构建
- angular - 使用 serenity-js 、 cumber 、 protractor 和 jasmine 进行端到端测试
- asp.net-mvc - 如何检查一个真正的布尔值,然后在我的 MVC Web 应用程序中将所有其他值设置为 false?
- c# - 如何隐藏没有可见性属性的窗口?