2017-07-14 73 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'类型不可读为类文件对象。 –