2016-05-04 4 views
0

私はPythonスクリプトを持っています。ポスト、フォロワーから構成され、instagram APIからフォローします。私がスクリプトを初めて実行したとき、それは完璧に働き、必要なデータを私に与えました。 スクリプトは次のとおりです。 -Python 3.5.1の "ValueError:closed fileの読み込み"を克服する方法

for r in range(10,12): 
    var=r,sheet.cell(row=r,column=2).value 
    xy=var[1] 
    ij=str(xy) 
    myopener=Myopen() 
    url=myopener.open('https://api.instagram.com/v1/users/'+ij+'/?access_token=641567093.1fb234f.a0ffbe574e844e1c818145097050cf33') 
    beta=json.loads(url) 
    item=beta['data']['counts'] 
    data1.append(item['media']) 
    data2.append(item['followed_by']) 
    data3.append(item['follows']) 

次のように私は私はFancyURLopenerを宣言している:=

class Myopen(FancyURLopener): 
version='Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36' 

私はそれが私にこのエラーを示し始めスクリプトを実行した二回目: -

Traceback (most recent call last): 
File "<pyshell#39>", line 7, in <module> 
beta=json.load(url) 
File "C:\Users\rnair\AppData\Local\Programs\Python\Python35\lib\site- packages\simplejson-3.8.2-py3.5-win-amd64.egg\simplejson\__init__.py", line 455, in load 
return loads(fp.read(), 
File "C:\Users\rnair\AppData\Local\Programs\Python\Python35\lib\tempfile.py", line 483, in func_wrapper 
return func(*args, **kwargs) 
ValueError: read of closed file 

これを解決するには?私は今一週間同じスクリプトを使用していますが、何のエラーもありませんでした。なぜ今日?

答えて

0

自分自身を見つけました!

上記のエラーは、次の理由によるものです。 - プライベートであった勘定科目のアカウントはほとんどありませんでした。だから、APIコールは、それらのアカウントに許可されていません、それは私がこのように私のコードを変更したため、それを読み取ろうとJSONの値のエラーが表示され、これを克服するためにHTTPエラーコード400

が含まれます: -

for r in range(1501,1625): 
var=r,sheet.cell(row=r,column=2).value 
xy=var[1] 
ij=str(xy) 
if xy=="Account Deleted": 
    data1.append('null') 
    data2.append('null') 
    data3.append('null') 
    continue 
myopener=Myopen() 
url=myopener.open('https://api.instagram.com/v1/users/'+ij+'/?access_token=641567093.1fb234f.a0ffbe574e844e1c818145097050cf33') 
if url.getcode() == 400: 
    data1.append('Private Account') 
    data2.append('Private Account') 
    data3.append('Private Account') 
    continue 
else: 
    beta=json.load(url) 
    item=beta['data']['counts'] 
    data1.append(item['media']) 
    data2.append(item['followed_by']) 
    data3.append(item['follows']) 

上記の助けを借りている人は、同じことについて私に質問することは自由です。

関連する問題