Python 使用API通过ID进行循环
我正在尝试从电影数据库批量下载电影信息。他们网站上提到的首选方法是从1到最新的电影ID循环浏览电影ID。当我使用他们的ID提取单个电影时,我会获得整个信息集。然而,当我把它拉入一个循环时,我收到一个错误34,资源找不到。在我的例子中,我专门挑选了一个我抓取的电影ID(Skyfall,37724),该ID返回“资源找不到”错误Python 使用API通过ID进行循环,python,api,Python,Api,我正在尝试从电影数据库批量下载电影信息。他们网站上提到的首选方法是从1到最新的电影ID循环浏览电影ID。当我使用他们的ID提取单个电影时,我会获得整个信息集。然而,当我把它拉入一个循环时,我收到一个错误34,资源找不到。在我的例子中,我专门挑选了一个我抓取的电影ID(Skyfall,37724),该ID返回“资源找不到”错误 import requests dataset = [] for i in range(37724, 37725): url = 'https://api.th
import requests
dataset = []
for i in range(37724, 37725):
url = 'https://api.themoviedb.org/3/movie/x?api_key=*****&language=en-US'
movieurl = url[:35] + str(i) + url[36:]
payload = "{}"
response = requests.request("GET", url, data=payload)
data = response.json()
dataset.append(data)
print(movieurl)
dataset
【答:】1)是否存在环路无法提取信息的原因?这是编程问题还是API特有的问题
2) 我的代码的设置方式是否能够最好地提取信息并将其批量存储?我的最终目标是创建一个包含数据的CSV文件
url = 'https://api.themoviedb.org/3/movie/{id}?api_key=*****&language=en-US'.format(id=i)
这是更强大的import csv
import requests
with open('output.csv', 'w') as csvfile:
writer = csv.DictWriter(csvfile)
for i in range(37724, 37725):
url = 'https://api.themoviedb.org/3/movie/{id}?api_key=*****&language=en-US'.format(id=i)
payload = "{}"
response = requests.request("GET", url, data=payload)
writer.writerow(response.json())
您是从
url
而不是movieurl
请求数据——这可能是您的问题吗?就是这样!哇!你对我的第二个问题有什么想法吗?谢谢!但是,这将返回以下错误:TypeError Traceback(最近一次调用last)in()4 5,open('output.csv','w')作为csvfile:--->6 writer=csv.DictWriter(csvfile)7,用于范围(37724,37726)内的i:8 url=https://api.themoviedb.org/3/movie/{id}?api_key=a792ae6c41aa660a503fb1c835a3daa7&language=en US'。格式(id=i)类型错误:uuuu init_uuuuuu()缺少1个必需的位置参数:“字段名”