如何从大型嵌套列表中拆分生成Pandas DataFrame列?
解决API嵌套数据转Pandas DataFrame的问题
嘿,我之前也碰到过一模一样的情况!API返回的带wrapper的嵌套数据直接转DataFrame确实会变成单列,咱们一步步拆解解决:
第一步:把文本文件解析成Python结构化数据
首先假设你的API返回文本是JSON格式(绝大多数API都是这个格式),先把它加载成Python能识别的字典/列表:
import json import pandas as pd # 读取并解析文本文件 with open('你的API数据文件.txt', 'r', encoding='utf-8') as file: api_data = json.load(file)
如果你的文件外面有额外的wrapper包裹(比如开头是customWrapper(结尾是)),那得先把这些多余字符去掉再解析:
with open('你的API数据文件.txt', 'r', encoding='utf-8') as file: raw_content = file.read() # 清理wrapper标记 clean_content = raw_content.strip().lstrip('customWrapper(').rstrip(')') api_data = json.loads(clean_content)
第二步:提取核心的transactions数据
你提到数据里有transactions和cursor两个关键字段,其中transactions应该是存着所有交易记录的列表——这才是我们要转成DataFrame的核心内容:
# 提取交易数据列表 transactions_list = api_data['transactions'] # 要是怕键不存在报错,可以用get方法更安全 # transactions_list = api_data.get('transactions', [])
第三步:转成正常的多列DataFrame
现在把提取到的列表传入Pandas的DataFrame构造器,就能得到行列正常的表格了:
df = pd.DataFrame(transactions_list) # 验证一下结果 print(f"数据形状:{df.shape}") print(df.head())
如果transactions里的每条记录还有嵌套的子字段,Pandas会自动把这些子字段展开成单独的列,非常省心!
额外:处理cursor字段
cursor一般是API分页用的标记,你可以单独存下来,后续如果要拉取更多数据的时候用:
next_cursor = api_data.get('cursor') print(f"下一页游标:{next_cursor}")
这样操作下来,你的DataFrame就不会只有1列啦,赶紧试试吧!
内容的提问来源于stack exchange,提问作者IDontKnowCode
相关产品推荐
相关产品推荐

