如何提交本接口请求:http://www.omdbapi.com/
我正在尝试使用IMDB中的数据构建一个电子表格,例如标题、年份、预算、票房和流派。如何使用Python中的API获取此信息?我假设数据将是JSON,我如何解析它,然后提取我想要的信息?
发布于 2016-04-09 14:53:29
我已经成功地使用了几次Flask来做这个事情。使用框架使事情变得简单,因为所有的工具都已经放在一起了。你可以阅读more about Flask here.
但是,如果您习惯于使用更手动的方法,则可以同时使用python和requests模块来访问RESTful json,这绝对没有问题。
示例可能如下所示:
import json, requests
url = 'http://example.com/endpoint/'
parameters = dict(
field1='some value',
field2='another value',
field3='yet another value',
)
resp = requests.get(url=url, params=parameters)
data = json.loads(resp.text)
print data编辑:
仔细看看这个问题,我才意识到使用IMDB API比我想象的更容易,只需发送一个带有您感兴趣的参数的GET请求即可。与之通信以获取有关电影《尖叫》的信息的实际工作示例如下:
import json, requests
url = "http://www.omdbapi.com/?t=scream"
response = requests.get(url)
python_dictionary_values = json.loads(response.text)最后一行获取响应中返回的json,并将其转换为Python字典,然后您可以随意使用它。
如果您想对来自文件的输入多次执行此操作,您当然可以这样做。我的例子假设你有一个换行符分隔的文件,并且你搜索的所有电影都没有空格(如果你需要处理空格,你需要在URL中正确地对它们进行编码-否则我提供的代码将会中断)。
movies = {}
import json, requests
baseurl = "http://omdbapi.com/?t=" #only submitting the title parameter
with open("movies.txt", "r") as fin:
for line in fin:
movieTitle = line.rstrip("\n") # get rid of newline characters
response = requests.get(url + movieTitle)
if response.status_code == 200:
movies[movieTitle] = json.loads(response.text)
else:
raise ValueError("Bad request!")
print movies['scream']https://stackoverflow.com/questions/36513597
复制相似问题