2015-03-18 15 views
13

, bir hata ile sağlasın bir 'yazma' öznitelik türünü bir cPickle nesnesini yazmak ama almak için çalışılıyor: BuradaBen ipython internette bulunan bazı kodları uygulamak çalışırken hata

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 

Elimde ne var sırayla yapılır:

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) 

İşte orijinal ar var: Sonra

outfile = "C:\John\Footy Bants\R COMPLAEX MATHS" 

, aşağıdaki kodda yapıştırılan cPickle.dump() ikinci argüman bir dosya nesnesi olmalıdır

http://billmill.org/fantasypl/

cevap

19

: TICLE sana ulaşmak istediğim şey hakkında bir fikir vermek için. Bunun yerine bir dosya adı içeren bir dizeden geçtiniz.

O dosya için bir dosya nesnesi açmak için open() fonksiyonunu kullanmak gerekir, o zaman geçmesine dosya nesnesi cPickle için:

with open(outfile, 'wb') as pickle_file: 
    cPickle.dump(all, pickle_file) 

Python öğretici Reading and Writing Files section Bkz Bir açarken neden with kullanarak dahil dosya iyi bir fikirdir (otomatik olarak sizin için kapatılacaktır).

+0

Teşekkürler Martijn, şimdi dosya var, ben outfile bazı veriler indirmeye çalışıyorum, ya da yapmaya çalıştığımı düşünüyorum en azından bu! Bu kopyalamak için çalışıyorum: http://billmill.org/fantasypl/ – Johnliquid

+0

@Johnliquid: Burada eksik girinti nerede görmek imkansız; 'with' ifadesinin altındaki blok, bir 'if' veya' while' veya 'for' ifadesiyle aynı şekilde girilmelidir. –

+0

Dosya "", hat 7 playerurl "http://fantasy.premierleague.com/web/api/elements/%s/" ^ IndentationError =: bir girintili blok – Johnliquid

İlgili konular