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

Pandas嵌套JSON归一化时如何获取并保留SecID与IssuerID字段

Pandas嵌套JSON归一化时如何获取并保留SecID与IssuerID字段

嘿,我来帮你搞定这个问题!你现在的问题出在meta参数的设置上——之前你把整个SecInfo字段放进了meta里,导致它被当成一个整体保留下来,而没有提取里面的SecID和IssuerID。

要解决这个问题,我们需要明确告诉pd.json_normalize,除了最外层的ActionID和Date,还要从SecInfo层级里提取SecID和IssuerID这两个字段。具体来说,用元组形式指定嵌套字段的路径,让pandas知道去哪里找这些值。

下面是修改后的完整代码:

import pandas as pd

data = [{
    "ActionID":"I",
    "Date":"01/13/2020",
    "SecInfo":[
        {
            "SecID":96964,
            "IssuerID":35,
            "StoreInfo":[
                {
                    "Code":"3342",
                    "Symbol":"LPPER",
                    "Status":"A"
                }
            ]
        }
    ]
}]

# 精准指定需要提取的元数据字段
df = pd.json_normalize(
    data,
    record_path=['SecInfo', 'StoreInfo'],  # 展开最内层的StoreInfo数组
    meta=[
        'ActionID',  # 外层字段
        'Date',      # 外层字段
        ['SecInfo', 'SecID'],    # 从SecInfo层级提取SecID
        ['SecInfo', 'IssuerID']  # 从SecInfo层级提取IssuerID
    ],
    errors='ignore'
)

# 可选:把默认的带点列名(比如SecInfo.SecID)改成简洁的名字
df.columns = ['Code', 'Symbol', 'Status', 'ActionID', 'Date', 'SecID', 'IssuerID']

df.to_csv('gg.csv', index=False)

运行这段代码后,生成的gg.csv内容就是你想要的样子:

Code,Symbol,Status,ActionID,Date,SecID,IssuerID
3342,LPPER,A,I,01/13/2020,96964,35

简单说下原理:record_path负责展开最内层的StoreInfo数组,而meta里的['SecInfo', 'SecID']会让pandas自动关联到当前StoreInfo所属的SecInfo元素,把对应的SecID和IssuerID提取出来,而不是把整个SecInfo对象塞进去。

备注:内容来源于stack exchange,提问作者Zalman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 11:09:27