在这里,我创建了一个我希望通过函数运行的网站列表。
import requests
item_ids=[11732, 536]
url_template = 'http://www.grandexchangecentral.com/include/gecgraphjson.php?jsid=%r'
your_sites = []
for i in range(0, len(item_ids)):
result = url_template % item_ids[i]
your_sites.append(result)
棘手的部分(对我来说,无论如何)是创建一个函数,它接受your_sites
中的每个项目并通过函数迭代它。我想过使用某种for循环,但我不知道如何实现它,并认为无论如何可能有更高效的方式。这是我的尝试,返回TypeError: 'NoneType' object is not iterable
。
def data_grabber():
for i in range(0, len(your_sites)):
url = your_sites[i]
r = requests.get(url, headers={'Referer': 'www.grandexchangecentral.com'})
data = r.json
prices = [i[1] for i in data]
我希望每个网站都返回prices
,但我只能为我的努力获取错误和无价值。任何帮助都会非常感激。
答案 0 :(得分:1)
不要将your_sites
设为全局变量,将其作为参数传递非常容易。您不需要for
循环的显式索引,只需迭代您感兴趣的对象。当您执行需要显式索引时,请使用enumerate()
def data_grabber(your_sites):
for url in your_sites:
r = requests.get(url, headers={'Referer': 'www.grandexchangecentral.com'})
data = r.json # if r.json None the next line will fail
prices = [i[1] for i in data]
如果r.json
为空,则不确定要执行的操作。你可以试试这样的东西
data = r.json or []