python json错误期望属性名称:第1行第2列(char 1)

时间:2017-02-09 12:35:57

标签: python json

请帮忙

def checkActionType(jsondata):
    print("In checkActionType method") 
    print type(jsondata)
    jsonformat = json.loads(jsondata)
    action=str(jsonformat["action"])

我传递

data = {u'userId': 3, u'module': u'report', u'clientId': 3, u'action': u'tablestats'}

r = checkActionType(data)

收到错误

jsonformat = json.loads(jsondata)
File "/usr/lib/python2.7/json/__init__.py", line 339, in loads
return _default_decoder.decode(s)
File "/usr/lib/python2.7/json/decoder.py", line 364, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python2.7/json/decoder.py", line 380, in raw_decode
obj, end = self.scan_once(s, idx)
ValueError: Expecting property name: line 1 column 2 (char 1)

2 个答案:

答案 0 :(得分:1)

您的数据不是可以转换为字典的有效json,它实际上是一个dictinary,data 应该是一个有效的json字符串,尝试将下面的数据作为参数传递:

data = '{"action": "tablestats", "userId": 3, "clientId": 3, "module": "report"}'

在文章"JSON: What It Is, How It Works, & How to Use It"

中查看有关json的更多信息

答案 1 :(得分:0)

你可以用两种方式做到:

1 - 像json一样定义数据,并将json传递给方法:

def checkActionType(jsondata):
    print("In checkActionType method") 
    print type(jsondata)
    action=str(jsondata["action"])

定义数据:

data = {'userId': 3, 'module': 'report', 'clientId': 3, 'action': 'tablestats'}

使用它:

r = checkActionType(data)

2 - 传递字符串:

def checkActionType(jsondata):
    print("In checkActionType method") 
    print type(jsondata)
    jsonformat = json.loads(jsondata)
    action=str(jsonformat["action"])

并传递此数据:

data = "{'userId': 3, 'module': 'report', 'clientId': 3, 'action': 'tablestats'}"

称之为:

r = checkActionType(data)

enter image description here