You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用json_normalize处理嵌套JSON无法获取pkey、code等全部字段

问题根因

你现有代码的问题出在数据拼接逻辑错误:

  • 直接将包含instrument对象、mappings数组的顶层JSON结构转为DataFrame,得到的行索引和单独对mappings字段规范化得到的行索引无法对齐,concat拼接后自然会出现字段缺失
  • 没有在规范化JSON时指定需要关联提取的顶层非数组字段,导致instrument下的属性和mappings下的字段无法对应到同一行

修复后代码

import json
import pandas as pd
import urllib

URL = "https://dsv.ihsmvals.com/instruments/v2.0/mappings/instruments/all/provider/pv/system/holidays"
response = urllib.request.urlopen(URL)
text = response.read()
json_data = json.loads(text)

# 直接一次性规范化所有需要的字段,record_path指定数组字段,meta指定要关联的顶层嵌套字段
df = pd.json_normalize(
    json_data,
    record_path='mappings',
    meta=[
        ['instrument', 'instrumentId'],
        ['instrument', 'instrumentSymbol'],
        ['instrument', 'instrumentType'],
        ['instrument', 'created']
    ]
)

df.to_csv("output.csv", encoding='utf-8-sig', index=False)

效果说明

运行以上代码后,输出的CSV会自动包含pkey、code(规范化后列名为mapping.code)、provider等所有mappings下的字段,同时会附带关联的instrument下的所有指定属性,不需要额外拼接操作。

内容的提问来源于stack exchange,提问作者Naina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 14:48:03