2017-07-14 114 views
-1

這是我的JSON數據,解碼JSON數據在Python

{ 
    "Chromatic Dragon": "D", 
    "Croesus": "@", 
    "Cyclops": "H", 
    "Dark One": "@", 
    "Death": "&", 
} 

這是我使用這個解碼成一個字典代碼,

import sys, json 
d = json.loads('mapping.json', encoding='utf-8') 
print(d) 

我期待的變量d是一個字典

但是這是我的錯誤,

json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 

有人可以幫助我。如果要加載外部JSON文件,請使用json.load()代替

回答

3

json.loads負荷的字符串。您需要打開一個文件,然後使用json.load讀取該文件。

import sys, json 
with open('mapping.json') as f: 
    d = json.load(f, encoding='utf-8') 
    print(d) 

雖然你也想從你的JSON文件中取出尾隨的逗號,以便它可以被python解析。

0

json.loads()將加載您的JSON,如果它是一個字符串,如...

json = "{ 
    "Chromatic Dragon": "D", 
    "Croesus": "@", 
    "Cyclops": "H", 
    "Dark One": "@", 
    "Death": "&", 
}" 

所以,你的代碼將是...

import sys, json 
with open('mapping.json') as json_file: 
    d = json.load(json_file) 
print(d) 
+1

這不起作用,'string'類型不可讀爲類文件對象。 –