【发布时间】:2018-04-29 09:32:02
【问题描述】:
我已经尝试过 json_normalize,这似乎可行;但是,它不会打印我想要的输出。
import requests
import json
from pandas.io.json import json_normalize
import pandas as pd
url = "https://www.qnt.io/api/results?pID=gifgif&mID=54a309ae1c61be23aba0da62&key=54a309ac1c61be23aba0da3f"
aResponse = requests.get(url)
y = json.loads(aResponse.content)
json_test = json.dumps(y, indent = 4, sort_keys=True)
print(json_test)
csv = json_normalize(y['results'])
print(csv)
显示这段代码的输出很困难,而且非常混乱;因此,我认为我将其排除在外符合我们双方的最大利益。如果这是一条有用的信息,我可以添加它。
json.dumps 部分只是组织了我的 json 文件,以便于查看。不幸的是,我不能发布整个 json 文件,因为 Stack 不是我的格式的忠实粉丝。这是一个小sn-p:
{
"query_parameters": {
"limit": 10,
"mID": "54a309ae1c61be23aba0da62",
"skip": 0,
"sort": 1
},
"results": [
{
"cID": "5314ab42d34b6c5b402aead4",
"content": "BE9kUwvLfsAmI",
"content_data": {
"added_with_admin": false,
"dateAdded": 1393863490.072894,
"embedLink": "http://media3.giphy.com/media/BE9kUwvLfsAmI/giphy.gif",
"still_image": "http://media.giphy.com/media/BE9kUwvLfsAmI/200_s.gif",
"tags": [
"adam levine",
"embarassed",
"the voice",
"confession"
]
},
"content_type": "gif",
"index": 269,
"parameters": {
"mu": 35.92818823777915,
"sigma": 1.88084276812386
},
"rank": 0
},
其中大约还有 10 个(范围一直到 6119;但是,我正在尝试仅完成其中的一部分)。我希望我的输出按如下顺序排列:rank、tags、embedLink、mu、sigma、index。这是我想要的输出示例:
0, adam levine, embarassed, the voice, confession, http://media3.giphy.com/media/BE9kUwvLfsAmI/giphy.gif, 35.92818823777915, 1.88084276812386, 269
我想把它作为一个 csv 文件;但是,我认为使用 Pandas 创建数据框也很有用。我认为我的问题出现是因为我有这么大的嵌入式 json 文件,并且计算机很难组织这个大数据集。任何意见,将不胜感激!
【问题讨论】:
标签: python json pandas csv python-requests