社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

具有无组织JSON输出的python API

ziji zijia • 6 年前 • 411 次点击  

我对API不熟悉,我在那个网站“flickr”上跟踪了documentaion,并达到了这样的程度:输出几乎是一个字典,我可以通过使用键和值循环,但我在尝试之后得到了错误。 JSON.Load()

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"

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/31512
 
411 次点击  
文章 [ 2 ]  |  最新文章 6 年前
Alex Hall
Reply   •   1 楼
Alex Hall    6 年前

一般来说,您只需手动删除javascript函数调用:

prefix = 'jsonFlickrFeed('
assert text.startswith(prefix) and text.endswith(')')
text = text([len(prefix):-1])
Alex Hall
Reply   •   2 楼
Alex Hall    6 年前

如果您只需要不带函数包装器的原始JSON,请将值为1的参数nojsonCallback添加到您的请求中。

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)