如何将嵌套JSON转换为指定列名格式的Pandas DataFrame
嵌套JSON转指定格式Pandas DataFrame实现方案
依赖库导入
首先导入需要用到的依赖:
import pandas as pd import json
数据解析与转换
步骤1:加载JSON数据
假设你的JSON数据已存储为字符串变量json_str,可直接解析;如果是本地JSON文件,可通过文件读取加载:
# 解析JSON字符串 raw_data = json.loads(json_str) # 若为本地JSON文件,使用如下代码加载 # with open("你的JSON文件路径.json", "r", encoding="utf-8") as f: # raw_data = json.load(f)
步骤2:提取字段组装结果数据
遍历嵌套层级提取所需字段,拼接列名并存值:
# 初始化结果字典 res_dict = {} # 提取博彩商列表(示例中仅含1个赛事项,故取raw_data["data"][0],若有多个赛事可在外层加遍历) bookmaker_list = raw_data["data"][0]["bookmaker"]["data"] for bookmaker in bookmaker_list: bk_name = bookmaker["name"] # 遍历当前博彩商的所有赔率项 for odds in bookmaker["odds"]["data"]: # 拼接赔率列名:赔率label_博彩商名称 col_name = f"{odds['label']}_{bk_name}" # 赔率值转浮点型存储 res_dict[col_name] = [float(odds["value"])] # 新增当前博彩商的更新时间列(同博彩商下所有赔率更新时间一致,取第一条即可) update_col_name = f"last_update_{bk_name}" res_dict[update_col_name] = [bookmaker["odds"]["data"][0]["last_update"]["date"]]
步骤3:转换为DataFrame
df = pd.DataFrame(res_dict)
执行后得到的df就是你要求的输出格式。如果需要调整列名大小写(比如示例中预期列名是LadBrokes,原始数据为Ladbrokes),可以在拼接列名时对bk_name做字符串格式化处理即可。
内容的提问来源于stack exchange,提问作者luka
相关产品推荐
相关产品推荐

