如何将JSON多值合并到Pandas单个列(分号分隔)
解决JSON多值字段提取到Pandas DataFrame的问题
假设你的原始JSON结构类似这样:
{
"issues": [
{
"key": "PROJ-123",
"fields": {
"customfield_100": [
{"value": "组件A"},
{"value": "组件B"}
]
}
},
{
"key": "PROJ-456",
"fields": {
"customfield_100": [
{"value": "组件C"}
]
}
}
]
}
如果你的现有代码仅提取customfield_100的第一个value,可以通过列表推导式遍历所有子对象,再用分号拼接所有值,实现需求:
基础解决方案
import pandas as pd import json # 加载JSON文件 with open('your_data.json', 'r', encoding='utf-8') as f: json_data = json.load(f) # 构造DataFrame,提取所有value并拼接 df = pd.DataFrame([ { 'Issue Key': issue['key'], 'Component': '; '.join(item['value'] for item in issue['fields']['customfield_100']) } for issue in json_data['issues'] ])
处理空字段的情况
如果存在customfield_100为空数组的情况,为避免报错,可以添加判断:
df = pd.DataFrame([ { 'Issue Key': issue['key'], 'Component': '; '.join(item['value'] for item in issue['fields']['customfield_100']) if issue['fields']['customfield_100'] else '' } for issue in json_data['issues'] ])
运行后,Component列会以分号分隔的形式存储所有关联值,比如组件A; 组件B、组件C或空字符串。
内容的提问来源于stack exchange,提问作者Sri B
相关产品推荐
相关产品推荐

