请帮忙
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)
答案 0 :(得分:1)
您的数据不是可以转换为字典的有效json,它实际上是一个dictinary,data
应该是一个有效的json字符串,尝试将下面的数据作为参数传递:
data = '{"action": "tablestats", "userId": 3, "clientId": 3, "module": "report"}'
中查看有关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)