2017-02-09 54 views
1

請幫助蟒JSON錯誤期待屬性名:第1行第2列(CHAR 1)

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(數據)

得到一個錯誤

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

試試這個'數據= { '用戶id':3, '模塊': '報告', '的clientId':3, '動作':' tablestats'}' –

+0

謝謝我試過這個問題,我應該提到這個問題,數據來自api java如何從中刪除u –

+0

我得到了與你相同的數據類型 –

回答

1

您的數據是不能夠轉化成字典中的有效的JSON,它實際上是一個詞典],data一個有效的JSON字符串,嘗試下面的數據作爲參數傳遞:

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

查看更多有關JSON在文章"JSON: What It Is, How It Works, & How to Use It"

+0

這些'u's在每個元素之前是什麼? –

+0

@Mohsen_Fatemi由於數據是一個字典'u',這意味着它是一個unicode密鑰,請參閱更新後的代碼。 –

+0

是的,這是真的(Y) –

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

+0

action = str(jsondata [「action」]) TypeError:字符串索引必須是整數,而不是str 得到這個錯誤與第一個應用程序 –

+0

所以使用'action = jsondata [ 「action」]' –

+0

action = jsondata [「action」] TypeError:字符串索引必須是整數,而不是str –

相關問題