【发布时间】:2019-06-18 06:18:12
【问题描述】:
我正在使用 api 来提取 json 文件/python 字典。当我尝试将它带到熊猫数据框时,我遇到了问题
我正在使用 python 请求库使用嵌套在 json.loads() 方法中的 requests.get().text 从地址获取字典。
我尝试了以下方法:
#Request_data
jsonfile = json.loads(requests.get(address).text)
方法1
df=json_normalize(jsonfile,record_path='history',meta['open','close','high','low','volume'],errors='ignore')
方法2
df=json_normalize(jsonfile,meta['open','close','high','low','volume'],errors='ignore')
当我尝试方法 1 时,我得到一个表格,列中有日期,开盘价、收盘价、最高价、最低价和成交量作为列标题,但是单元格中的值是 NaN
当我尝试 method2 时,我得到一行和很多列,每个日期都有一个开盘、收盘、最高、最低和成交量列。
【问题讨论】:
-
如果没有您使用的文件,很难帮助您...
-
谢谢@BenPap 我附上了 json 的 sn-p:- `'name': 'AAPL', 'history': {'2019-04-26': {'open': ' 204.90','收盘':'204.30','高':'205.00','低':'202.12','成交量':'18649102'},'2019-04-25':{'开盘':' 206.83','收盘':'205.28','高':'207.76','低':'205.12','成交量':'18543206'},'2019-04-24':{'开盘':' 207.36', 'close': '207.16', 'high': '208.48', 'low': '207.05', 'volume': '17540609'}, `
-
所以问题是你的 json 是如何格式化的。如果是 {name: AAPL, history: [{date:2019-04-26, open: 204.90' ect ect}, {date: 2019-04-27, ect ect]} 那么方法 1 就可以了。如果您愿意,可以使用正则表达式来操作 json 文本,然后使用 json_normalize 导入它。
标签: python json pandas dataframe