这是我的json数据,
{
"Chromatic Dragon": "D",
"Croesus": "@",
"Cyclops": "H",
"Dark One": "@",
"Death": "&",
}
这是我用来将其解码为dict的代码,
import sys, json
d = json.loads('mapping.json', encoding='utf-8')
print(d)
我期待变量d是dict
然而,这是我得到的错误,
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
有人可以帮助我。
答案 0 :(得分: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可以解析它。
答案 1 :(得分:0)
json.loads()将加载你的json,如果它是一个字符串,如...
json = "{
"Chromatic Dragon": "D",
"Croesus": "@",
"Cyclops": "H",
"Dark One": "@",
"Death": "&",
}"
如果要加载外部json文件,请改用 json.load()。
所以你的代码就是......
import sys, json
with open('mapping.json') as json_file:
d = json.load(json_file)
print(d)