2014-10-03 20 views
6

Json kütüphanesini kullanarak python komut dosyasından json dosyasını okumaya çalışıyorum. Bazı googling sonra ben aşağıdaki kodu bulundu:python'dan json dosyasını okuyun

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

Nerede json_folder + json yolu ve json dosyanın adı. Aşağıdaki hatayı alıyorum str nesnesinde öznitelik yükleri yok.

+0

Eğer json bir dosya ismine sahip bir dize ise, string üzerindeki yükleri arayarak ne elde etmek istersiniz? –

cevap

7

Kod, json değişken adı olarak kullanılıyor. İçe aktardığınız modül referansını gölgeleyecektir. Değişken için farklı ad kullanın.

Bunun yanında, kod dosya nesnesini geçirirken, json.loads bir dizeyi kabul eder.

dosya içeriğini Pass:

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

veya dosya benzeri nesne kabul json.load kullanın. olması gerektiği

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

Bunun yerine karmaşık bir yol yapıyorlar görünüyor.

1

böyle deneyin: -

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

....

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

Bunun nasıl alakalı olduğundan emin değil. – dantiston

0

sizin json dosyasının yolunu düşünüldüğünde değişken json_file olarak ayarlanır:

import json 

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

print json_data 
İlgili konular