json.JSONDecoder()。decode()无法正常工作

时间:2014-09-22 10:04:00

标签: python json decode

代码很简单,但无法正常工作。我不知道问题

import json

json_data = '{text: \"tl4ZCTPzQD0k|rEuPwudrAfgBD3nxFIsSbb4qMoYWA=\", key: \"MPm0ZIlk9|ADco64gjkJz2NwLm6SWHvW\"}'
my_data = json.JSONDecoder().decode(json_data)
print my_data

throw exption behinde:

Traceback (most recent call last):
  File "D:\Python27\project\demo\digSeo.py", line 4, in <module>
    my_data = json.JSONDecoder().decode(json_data)
  File "D:\Python27\lib\json\decoder.py", line 366, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "D:\Python27\lib\json\decoder.py", line 382, in raw_decode
    obj, end = self.scan_once(s, idx)
ValueError: Expecting property name: line 1 column 2 (char 1)

2 个答案:

答案 0 :(得分:2)

您的json_data无效JSON。

在JSON中,属性名称必须是双引号(")。此外,由于您已经对字符串使用单引号('),因此不需要对终止字符串值的双引号进行ecaped。

示例:

json_data = '{"text": "tl4ZCTPzQD0k|rEuPwudrAfgBD3nxFIsSbb4qMoYWA=", "key": "MPm0ZIlk9|ADco64gjkJz2NwLm6SWHvW"}'

答案 1 :(得分:0)

Python标准库中的json模块可以很好地工作,这是许多人正在使用它们的应用程序。

然而,使用此模块的这几行代码存在一个小问题。问题是您的示例数据不是有效的JSON。键(文本和键)应该引用如下:

json_data = '{"text": \"tl4ZCTPzQD0k|rEuPwudrAfgBD3nxFIsSbb4qMoYWA=\", "key": \"MPm0ZIlk9|ADco64gjkJz2NwLm6SWHvW\"}'