[英]Convert from CSV to Nested JSON with array in Python
I'm trying to convert from csv to complex nested json.我正在尝试从 csv 转换为复杂的嵌套 json。 Below is how my CSV looks like
下面是我的 CSV 的样子
Sample csv样本 csv
title,section_id,content,expected标题,section_id,内容,预期
"Test case1",1234,"Test step1","Expected Result1" "测试用例1",1234,"测试步骤1","预期结果1"
"Test case1",1234,"Test step2","Expected Result2" "测试用例1",1234,"测试步骤2","预期结果2"
"Test case1",1234,"Test step3","Expected Result3" "测试用例1",1234,"测试步骤3","预期结果3"
Expected output预期产出
'title': 'Test case 1',
'section_id': 1234,
'custom_steps_separated': [
{
'content': 'Test step1',
'expected': 'Expected Result 1'
},
{
'content': 'Test step2',
'expected': 'Expected Result 2'
},
{
'content': 'Test step3',
'expected': 'Expected Result 3'
}
]
}
Code so far到目前为止的代码
import pandas as pd
df = pd.read_csv('testcases.csv')
df['custom_steps_separated'] = df[['content','expected']].to_dict('records')
out = df[['title','section_id','custom_steps_separated']].to_json(orient='records', indent=4)
jsondict = json.loads(out)
for i in range(0,len(jsondict)):
print(list(jsondict)[i])
I hope this will work for your case.我希望这对你的情况有用。 You can use groupby
您可以使用groupby
import pandas as pd
df = pd.DataFrame({'title':["Test case1","Test case1","Test case1"],
'section_id':['1234','1234','1234'],'content':["Test step1","Test step2","Test step3"],'expected':["Expected Result1","Expected Result2","Expected Result3"]})
df.groupby(['title','section_id']).apply(lambda x: x[['content','expected']].to_dict('records'))
.reset_index()
.rename(columns={0:'custom_steps_separated-Data'})
.to_json(orient='records')
the output what i got is,我得到的输出是,
[
{
"title": "Test case1",
"section_id": "1234",
"custom_steps_separated-Data": [
{
"content": "Test step1",
"expected": "Expected Result1"
},
{
"content": "Test step2",
"expected": "Expected Result2"
},
{
"content": "Test step3",
"expected": "Expected Result3"
}
]
}
]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.