1

ここでは、関数を実行したい Web サイトのリストを作成しました。

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ウェブサイトごとに返してほしいのですが、自分の努力に対してエラーとなしの値しか取得できません。どんな助けでも本当にありがたいです。

4

1 に答える 1

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 []
于 2012-11-01T00:14:44.340 に答える