用Python解码json数据

时间:2017-07-14 17:14:05

标签: python json

这是我的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)

有人可以帮助我。

2 个答案:

答案 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)