[英]Convert from CSV to Nested JSON with array in Python
我正在尝试从 csv 转换为复杂的嵌套 json。 下面是我的 CSV 的样子
样本 csv
标题,section_id,内容,预期
"测试用例1",1234,"测试步骤1","预期结果1"
"测试用例1",1234,"测试步骤2","预期结果2"
"测试用例1",1234,"测试步骤3","预期结果3"
预期产出
'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'
}
]
}
到目前为止的代码
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])
我希望这对你的情况有用。 您可以使用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')
我得到的输出是,
[
{
"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.