我是API的新手,我遵循该站点“ Flickr”上的文档,并到达了这一点,在该点上,输出几乎是一个字典,我可以使用键和值遍历该字典,但是在尝试后却遇到了错误json.loads()
import json
import requests
headers = {'User-Agent': 'Mozilla/5.0'}
query = "Hello World".lower().replace(" ", "+")
url = 'https://api.flickr.com/services/feeds/photos_public.gne?format=json&tag={}'.format(query)
res = requests.get(url, headers=headers)
#di = json.loads(res.text)
我想要的基本上是将输出转换成我可以循环通过的字典。
这是我得到的输出
>>>res.text
'jsonFlickrFeed({\n\t\t"title": "Uploads from everyone",\n\t\t"link": "https:\\/\\/www.flickr.com\\/photos\\/",\n\t\t"description": "",\n\t\t"modified": "2019-03-16T20:51:09Z",\n\t\t"generator": "https:\\/\\/www.flickr.com",\n\t\t"items": [\n\t {\n\t\t\t"title": "ffxiv_dx11_2019-03-16_23-51-10",\n\t\t\t"link": "https:\\/\\/www.flickr.com\\/photos\\/146658428@N07\\/32455392917\\/",\n\t\t\t"media"
...
答案 0 :(得分:1)
如果只需要原始的JSON,而没有函数包装,则将参数nojsoncallback的值设置为1。
https://www.flickr.com/services/api/response.json.html
因此使用:
url = 'https://api.flickr.com/services/feeds/photos_public.gne?format=json&nojsoncallback=1&tag={}'.format(query)
答案 1 :(得分:0)
通常,您可以手动删除JavaScript函数调用:
prefix = 'jsonFlickrFeed('
assert text.startswith(prefix) and text.endswith(')')
text = text([len(prefix):-1])