使用Pandas DataFrame将JSON数据转为电子表格时遇问题求助
解决币安交易记录处理的常见问题
看起来你在处理币安交易记录的时候卡壳了,我帮你梳理下代码里可能踩的坑,一步步来调整:
先排查依赖与基础问题
首先得确保你导入了所有需要的模块,不然代码会直接报错:
import json import pandas as pd from pandas import json_normalize # 别忘了币安客户端模块 # from binance.client import Client
分析你代码里的几个核心问题
- JSON转DataFrame的嵌套处理
币安get_my_trades返回的交易数据包含不少嵌套字段,直接用默认的json_normalize可能会丢失深层数据或者格式混乱。可以调整成更稳妥的写法:
# 获取交易记录 trade = client.get_my_trades(symbol=ticker) # 标准化JSON,自动识别顶层字段(如果有深层嵌套,可添加record_path参数指定路径) json_normalised = json_normalize(trade) print("Normalised JSON\n", json_normalised)
- 文件读取的逻辑错误
你代码里的pandas.read_json("logs.xls...明显有问题:一是路径没写完整,二是.xls是Excel格式,read_json根本读不了!如果要保存交易数据,直接把标准化后的DataFrame导出就行:
# 直接导出为Excel文件,不用绕弯转JSON json_normalised.to_excel("trade_records.xlsx", index=False) # 如果是读取已有的Excel文件,要改用: # df = pd.read_excel("trade_records.xlsx")
- 变量覆盖的冗余操作
你最后一行json_normalised = DataFrame(pandas.read_json(...把之前标准化好的DataFrame给覆盖了,前面的工作直接白费。逻辑上要理清顺序:先获取数据→标准化→保存/输出,不要随便覆盖变量。
修正后的完整示例代码
import json import pandas as pd from pandas import json_normalize from binance.client import Client # 初始化币安客户端(记得替换成你的API密钥) client = Client(api_key='你的API_KEY', api_secret='你的API_SECRET') ticker = "IOSTBTC" # 获取交易对的所有交易记录 trade = client.get_my_trades(symbol=ticker) print("原始交易数据:") print(json.dumps(trade, indent=4, ensure_ascii=False)) # 标准化JSON为表格格式 json_normalised = json_normalize(trade) print("\n标准化后的表格数据:") print(json_normalised) # 导出为Excel文件 json_normalised.to_excel("iostbtc_trade_records.xlsx", index=False) print("\n交易记录已成功导出到Excel文件!")
如果还是有问题,你可以告诉我具体的报错信息(比如API调用失败、字段缺失还是文件导出报错),这样能更快定位问题~
内容的提问来源于stack exchange,提问作者deckador
相关产品推荐
相关产品推荐

