Dosyanın ikili gösterimi JSON modülü tarafından okunabilir olacak olmadığından, "rb" belirtmek istemiyorum. Muhtemelen "utf-8" kodlamasını ve "okumayı" istersiniz. DÜZENLEME: Aslında her ikisinin de varsayılanlar olduğunu söylemiştim, fakat çoğu işletim sisteminin farklı varsayılan kodlamaya sahip olduğu ve Python'un sistem ayarını open() 'de varsayılan olarak kullandığı dikkatimi çekti. Bu nedenle, kodlama ayarını açıkça "utf-8" olarak sağlamanızı öneririm.
json, "json.loads" yerine "json.loads" yerine "json.load" ile bir açık dosyadan yüklenmeyi destekler, böylece metin içinde okundu atlayabilir ve JSON'a gidebiliriz. Tek tek satırları "yüklemek" isteyeceğinizi sanmıyorum, çünkü bu muhtemelen geçerli JSON olmayacaktır.
import json
# open has __enter__ and __exit__ functions, so we can call it as a guard
# using "with" syntax and it'll close when the scope ends
with open(r".\myjson.json", encoding="utf-8") as fh:
# load() is a convenience function to help us avoid iterating lines
# on our own. It calls loads() on the whole doc and returns an obj
json_obj = json.load(fh)
print (json_obj)
Belki de 'b' kurtulmak senin 'aç' çağrı? https://docs.python.org/2/library/functions.html#open, dosyayı bir dize olarak alınmamasına bağlı olarak ikili biçimde yükleyeceğini söylüyor. – TW80000
Dosyanın sadece bir satırını alırsanız, json'a yükleyebilir misiniz? Json.loads (file.readlines() [0]) ' –
@ TW80000 gibi öneriniz sorunumu çözer. Ayrıca 'açık' aramada doğrudan kodlama = 'utf-8' geçmenin de işe yarayacağını öğrendim. Yorumun için teşekkür ederim. – Greg