2014-10-03 16 views
6

Próbuję odczytać plik json ze skryptu Pythona przy użyciu biblioteki json. Po pewnym googling znalazłem następujący kod:Przeczytaj plik json z python

with open(json_folder+json) as json_file: 
     json_data = json.loads(json_file) 
     print(json_data) 

Gdzie json_folder + json ścieżka i nazwa pliku JSON. Otrzymuję następujący obiekt błędu str nie ma ładunków atrybutów.

+0

Jeśli json jest ciągiem z nazwą pliku, co chcesz osiągnąć, wywołując obciążenia w łańcuchu? –

Odpowiedz

7

Kod używa nazwy json jako nazwy zmiennej. Będzie zacieniać odwołanie do modułu, które zaimportowałeś. Użyj innej nazwy dla zmiennej.

Oprócz tego kod przekazuje obiekt pliku, a json.loads przyjmuje ciąg znaków.

przepuszczać zawartość pliku:

json_data = json.loads(json_file.read()) 

, lub json.load która przyjmuje obiekt pliku podobne.

json_data = json.load(json_file) 
2
import json 
f = open("fileToOpen.json" , "rb") 
jsonObject = json.load(f) 
f.close() 

powinien wydaje robisz w dość skomplikowany sposób.

1

Spróbuj tak: -

json_data=open(json_file) 
data = json.load(json_data) 
json_data.close() 
-1

I zrobić to ....

import urllib2 

link_json = "\\link-were\\" 
link_open = urllib2.urlopen(link_json) ## Open and Return page. 
link_read = link_open.read()   ## Read contains of page. 

json = eval(link_read)[0]    ## Transform the string of read in link_read and return the primary dictionary ex: [{dict} <- return this] <- remove this 

print(json['helloKey']) 

Hello World 
+0

Nie wiesz, jak to ma znaczenie. – dantiston

0

Biorąc pod uwagę ścieżkę do pliku json jest ustawiony w zmiennej json_file:

import json 

with open(json_file, "rb") as f: 
    json_data = json.load(f) 

print json_data