Lorsque j'essaie d'appliquer du code que j'ai trouvé sur Internet dans iPython, cela génère une erreur:
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
Voici ce que j'ai fait dans l'ordre:
outfile = "C:\John\Footy Bants\R COMPLAEX MATHS"
Ensuite, j'ai collé le code suivant:
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)
Voici l'article original pour vous donner une idée de ce que j'essaie de réaliser:
Le deuxième argument de cPickle.dump()
doit être un objet fichier . Vous avez plutôt passé une chaîne contenant un nom de fichier.
Vous devez utiliser la fonction open()
pour ouvrir un objet fichier pour ce nom de fichier, puis passer l'objet fichier à cPickle
:
with open(outfile, 'wb') as pickle_file:
cPickle.dump(all, pickle_file)
Voir la section Lecture et écriture de fichiers du didacticiel Python, y compris pourquoi utiliser with
lors de l'ouverture d'un fichier est une bonne idée (il sera fermé automatiquement pour vous).