2017-03-02 72 views
0

我想實現一個解析從IoT接收的json消息的AWS Lambda函數。在Python中解析Aws IoT消息

我receeve此JSON:

{u'Ut': 1488467722, u'Rh': 59.4, u'Id': u'test', u'Temp': 21.6} 

我如何解析這個字符串存儲每個值到一個變量?

感謝

回答

2

你這裏有幾個選擇,有一點應該工作很好地是使這個字典。您可以使用內置的json模塊做到這一點:

import json 

orig_json_string = "{u'Ut': 1488467722, u'Rh': 59.4, u'Id': u'test', u'Temp': 21.6}" 

json_string = orig_json_string.replace("u'", "\"").replace("'", "\"") 
my_dict = json.loads(json_string) 

print(my_dict['Ut']) 
>>>> 1488467722 

注意,replace("u'", "\"")僅僅是因爲存在的問題指定與包括Unicode標識符的字符串。只有在輸出字符串時纔會顯示,因此一般情況下只應使用replace("'", "\"")調用。

+0

感謝您的回覆。如果我用Python 2.7調試代碼,我給了這個錯誤:json_string ='{u'Ut':1488467722,u'Rh':59.4,u'Id':u'test',u'Temp':21.6}' ^ SyntaxError:無效的語法 – Federico

+0

@Federico我已更新答案以糾正此問題,您可能需要將該字符串括在雙引號內,或者轉義每個內部單引號(u'tt' - > u''ut'') –

+0

我以前用雙引號試過,但現在出現此錯誤:ValueError:期望屬性名稱:第1行第2列(char 1)。謝謝 – Federico