如何从包含嵌套字典的字典列表创建指定列的Pandas DataFrame
解决方案
你遇到的问题根源是数据中的entrant字段为嵌套字典,直接传入pd.DataFrame()只会将entrant作为单列处理,不会自动拆分出嵌套的id、name字段。可使用以下两种方案处理:
方案1:使用pandas.json_normalize(推荐)
该方法是Pandas内置的半结构化数据处理工具,无需手动遍历:
import pandas as pd # 假设解析后的嵌套字典列表存储在变量raw_data中 df = pd.json_normalize(raw_data) # 重命名列名符合需求 df = df.rename(columns={"entrant.id": "id", "entrant.name": "name"}) # 调整列顺序为你需要的placement、id、name(可选) df = df[["placement", "id", "name"]]
方案2:手动遍历展开字典
如果你需要自定义处理逻辑,可先通过列表推导式把所有嵌套字段展开为平级字典:
import pandas as pd processed_data = [ { "placement": item["placement"], "id": item["entrant"]["id"], "name": item["entrant"]["name"] } for item in raw_data ] df = pd.DataFrame(processed_data)
两种方案生成的DataFrame结构完全一致,均符合你要求的列名和数据结构。
内容的提问来源于stack exchange,提问作者binarycoffee356
相关产品推荐
相关产品推荐

