0
IoTから受信したjsonメッセージを解析するAWSラムダ関数を実現したい。PythonでAws IoTメッセージを解析する
私はこのJSONをreceeve:
{u'Ut': 1488467722, u'Rh': 59.4, u'Id': u'test', u'Temp': 21.6}
にはどうすれば変数に各値を保存するために、この文字列を解析することができますか?
おかげ
IoTから受信したjsonメッセージを解析するAWSラムダ関数を実現したい。PythonでAws IoTメッセージを解析する
私はこのJSONをreceeve:
{u'Ut': 1488467722, u'Rh': 59.4, u'Id': u'test', u'Temp': 21.6}
にはどうすれば変数に各値を保存するために、この文字列を解析することができますか?
おかげ
あなたがここにいくつかのオプションがありますが、非常にうまく動作するはずです一つのことは、この辞書にすることです。質問が含ま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("'", "\"")
呼び出しを使用してください。
返信いただきありがとうございます。 python 2.7でコードをデバッグすると、このエラーが発生しました:json_string = '{u'Ut':1488467722、u'Rh ':59.4、u'Id':u'Temp ':21.6}' ^ SyntaxError:無効な構文 – Federico
@Federicoこの問題を解決するための答えを更新しました。文字列を二重引用符で囲むか、各一重引用符(u'Ut-> u \ 'Ut \')をエスケープする必要があります。 –
二重引用符で試してみましたが、今このエラーが発生します。ValueError:プロパティ名が必要です:行1列2(char 1)。ありがとう – Federico