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

如何从Dataframe的嵌套字典列表中提取'id'字段值?

提取DataFrame中JSON字符串的id字段

假设你的DataFrame是单列结构,每个单元格内容是带HTML转义字符(")的JSON字符串,以下是两种可行的提取方案:

方法1:逐行解析提取

先处理字符串中的转义字符,再解析为JSON对象并提取目标字段:

import pandas as pd
import json

# 初始化你的DataFrame
df = pd.DataFrame({
    'json_content': [
        '{"data":{"attributes":{"title":"Contract 1","AnnualValue":0},"id":1,"type":"contract"}}',
        '{"data":{"attributes":{"title":"Contract 2","AnnualValue":0},"id":2,"type":"contract"}}',
        '{"data":{"attributes":{"title":"Contract 3","AnnualValue":0},"id":3,"type":"contract"}}'
    ]
})

# 替换转义引号并提取id
df['id'] = df['json_content'].apply(
    lambda x: json.loads(x.replace('"', '"'))['data']['id']
)

# 查看结果
print(df['id'])

输出结果:

0    1
1    2
2    3
Name: id, dtype: int64

方法2:批量解析(适合大数据量)

用json_normalize批量展开JSON结构,效率更高:

import pandas as pd
import json

# 先将所有字符串转为字典列表
dict_list = [json.loads(x.replace('"', '"')) for x in df['json_content']]

# 批量解析并提取id字段
result = pd.json_normalize(dict_list)['data.id']
print(result)

常见问题排查

  • 若解析报错,先检查字符串是否存在多余转义或特殊字符,可先用x.strip()清理字符串两端空白
  • 确保所有JSON字符串结构统一,均包含data.id层级,避免出现KeyError

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 11:48:19