インターネットで見つけたコードをiPythonで適用しようとすると、エラーが発生します。
TypeError Traceback (most recent call last)
<ipython-input-4-36ec95de9a5d> in <module>()
13 all[i] = r.json()
14
---> 15 cPickle.dump(all, outfile)
TypeError: argument must have 'write' attribute
これが私が順番に行ったことです:
outfile = "C:\John\Footy Bants\R COMPLAEX MATHS"
次に、次のコードを貼り付けました。
import requests, cPickle, shutil, time
all = {}
errorout = open("errors.log", "w")
for i in range(600):
playerurl = "http://fantasy.premierleague.com/web/api/elements/%s/"
r = requests.get(playerurl % i)
# skip non-existent players
if r.status_code != 200: continue
all[i] = r.json()
cPickle.dump(all, outfile)
これが私が達成しようとしていることのアイデアを与えるための元の記事です:
cPickle.dump()
の2番目の引数は、ファイルオブジェクトでなければなりません。代わりにファイル名を含む文字列を渡しました。
open()
関数を使用してそのファイル名のファイルオブジェクトを開き、そのファイルオブジェクトをcPickle
に渡す必要があります。
with open(outfile, 'wb') as pickle_file:
cPickle.dump(all, pickle_file)
Pythonチュートリアルの__ ファイルの読み取りと書き込みセクション を参照してください。with
を使用する理由も含まれますファイルを開くときは良い考えです(自動的に閉じられます)。