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}
我如何解析這個字符串存儲每個值到一個變量?
感謝
我想實現一個解析從IoT接收的json消息的AWS Lambda函數。在Python中解析Aws IoT消息
我receeve此JSON:
{u'Ut': 1488467722, u'Rh': 59.4, u'Id': u'test', u'Temp': 21.6}
我如何解析這個字符串存儲每個值到一個變量?
感謝
你這裏有幾個選擇,有一點應該工作很好地是使這個字典。您可以使用內置的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("'", "\"")
調用。
感謝您的回覆。如果我用Python 2.7調試代碼,我給了這個錯誤:json_string ='{u'Ut':1488467722,u'Rh':59.4,u'Id':u'test',u'Temp':21.6}' ^ SyntaxError:無效的語法 – Federico
@Federico我已更新答案以糾正此問題,您可能需要將該字符串括在雙引號內,或者轉義每個內部單引號(u'tt' - > u''ut'') –
我以前用雙引號試過,但現在出現此錯誤:ValueError:期望屬性名稱:第1行第2列(char 1)。謝謝 – Federico