2017-03-02 11 views
0

IoTから受信したjsonメッセージを解析するAWSラムダ関数を実現したい。PythonでAws IoTメッセージを解析する

私はこのJSONをreceeve:

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

にはどうすれば変数に各値を保存するために、この文字列を解析することができますか?

おかげ

答えて

2

あなたがここにいくつかのオプションがありますが、非常にうまく動作するはずです一つのことは、この辞書にすることです。質問が含まUnicode識別子の文字列を指定しているためreplace("u'", "\"")が唯一の存在であることを

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 

注:あなたは作り付けのjsonモジュールを使用してこれを行うことができます。これは文字列を出力するときにのみ表示されるので、通常はreplace("'", "\"")呼び出しを使用してください。

+0

返信いただきありがとうございます。 python 2.7でコードをデバッグすると、このエラーが発生しました:json_string = '{u'Ut':1488467722、u'Rh ':59.4、u'Id':u'Temp ':21.6}' ^ SyntaxError:無効な構文 – Federico

+0

@Federicoこの問題を解決するための答えを更新しました。文字列を二重引用符で囲むか、各一重引用符(u'Ut-> u \ 'Ut \')をエスケープする必要があります。 –

+0

二重引用符で試してみましたが、今このエラーが発生します。ValueError:プロパティ名が必要です:行1列2(char 1)。ありがとう – Federico

関連する問題