我需要将带有嵌套数组[[]]的JSON web响应平坦化为数据帧
我正在尝试将我需要将带有嵌套数组[[]]的JSON web响应平坦化为数据帧,json,python-3.x,Json,Python 3.x,我正在尝试将httpjson响应转换为DataFrame,然后输出到CSV文件 我正在努力将JSON转换成DF http线路: JSON响应(数组中-720条记录的一部分): [使用JSON站点格式化后,显然不会在此处发布] { "error": [], "result": { "XXBTZEUR": [ [1486252800, "959.7", "959.7", "935.0", "943.6", "945.6",
httpjson
响应转换为DataFrame
,然后输出到CSV
文件
我正在努力将JSON转换成DF
http线路:
JSON响应(数组中-720条记录的一部分):
[使用JSON站点格式化后,显然不会在此处发布]
{
"error": [],
"result": {
"XXBTZEUR": [
[1486252800, "959.7", "959.7", "935.0", "943.6", "945.6", "4423.72544809", 5961],
[1486339200, "943.8", "959.7", "940.0", "952.9", "953.5", "4464.48492401", 7678],
[1486425600, "953.6", "990.0", "952.7", "988.5", "977.3", "8123.94462701", 10964],
[1486512000, "988.4", "1000.1", "963.3", "987.5", "983.7", "10989.31074845", 16741],
[1486598400, "987.4", "1007.4", "847.9", "926.4", "934.5", "22530.11626076", 52668],
[1486684800, "926.4", "949.0", "886.0", "939.7", "916.7", "11173.53504917", 12588],
],
"last": 1548288000
}
}
我明白了
KeyError: 'XXBTZEUR'
在json\u normalize
行上。似乎向我表明,json_normalize
正试图从“XXBTZEUR”级别构建DF
,而不是从记录级别降低。如何让json\u规范化来读取记录。我怎样才能使它足够深
我在这个网站上读过其他几篇文章,却不知道我做错了什么
一篇帖子提到必须使用json.loads()
。json\u string.json()
是否也在加载json对象,还是需要使用json.loads()
还尝试了json_normalize
的变体:
BTCEUR_Daily_Table = json_normalize(json_data[[]])
TypeError:不可损坏的类型:“列表”
是否可以正常化不将数组加载到DF行
迄今为止的代码:
BTCEUR_Daily_URL = 'http://api.kraken.com/0/public/OHLC?pair=XXBTZEUR&interval=1440'
json_string = requests.get(BTCEUR_Daily_URL)
json_data = json_string.json()
BTCEUR_Daily_Table = json_normalize(json_data, record_path=["XXBTZEUR"])
我需要的结果是:
在我的DF中,我只希望在JSON结构的“body”中显示阵列记录。不需要任何页眉和页脚。我找到的解决方案是:
BTCEUR_Daily_Table=json_normalize(数据=json_数据,记录路径=[['result','XXBTZEUR']))
第二个参数指定记录父标签的完整“路径”。
显然,指定完整路径需要双括号,否则这两个标签表示两个顶级名称
如果没有这里的另一个帖子,我永远也找不到解决办法