2017-12-03 12 views
0

私はちょうどjsonとpythonについて何か質問したいと思います。PythonのJsonライブラリStringIO解析?

正しい場合、StringIOをjsonにロードすると、結果はu'になります。例えば

は、JSONライブラリで:

[u'streaming API'] 

>>> from StringIO import StringIO 
>>> io = StringIO('["streaming API"]') 
>>> json.load(io) 

結果はので、どのように私はこのデータを解析していますか?このようなデータを並べ替えるためには ?私は解析したいこのデータを持っています。

{u'brix ':{u'Nov 29、2017年11時20分15秒PM':{u'Checklist ':{u'Coffee 3本のコーヒースティック、3クリーマー、3白砂糖と トレイ、3ブラウンシュガー、1等身 または甘味料3リプトン茶2ミネラルウォーター3カクテルナプキン ' u'No'、u''Luggage台ファブリックトップはきれいです 'u'No'、u'1 facial組織 ティッシュボックス ':u'No'、u'Telel Reminder ':u'No'、u'1 pringles、1 カシューナッツ、1カップヌードル(コーヒートレイ デスクに置かれています)? ':u'No'、

jsonについて私はこれがjsonの代わりにStringIOであるかもしれないことを知りました。すでにロードされているときにjson.loadsを実行しようとしたのは馬鹿でした。私が望むのは、これらのデータをすべて並べ替えてWeb上に正しく表示されるようにすることだけです。

これを正しく行うにはどうすればよいですか?私はこれらをjsonに最初にデコードするので、それは何かのようになります

{ 
"maps":[ 
     {"id":"blabla","iscategorical":"0"}, 
     {"id":"blabla","iscategorical":"0"} 
     ], 
"masks": 
     {"id":"valore"}, 
"om_points":"value", 
"parameters": 
     {"id":"valore"} 
} 

次にこれを使用して値を取得しますか?とにかく

data["maps"][0]["id"] # will return 'blabla' 
data["masks"]["id"] # will return 'valore' 
data["om_points"]  # will return 'value' 

、私は私が何をすべきかの混乱している、私はこれらの例は、他の質問から来た、ほとんどすべてを試してみました。 FirebaseはJSONファイルを返すことになっている

result1 = firebase.get('/Rooms/Room1/2017-11-29/Inspection/Scan-in/Inspector/', None) 
result2 = firebase.get('/Rooms/Room1/2017-11-29/Inspection/Scan-out/Inspector/', None) 
print result1["brix"] 

は、ここに私のコードのビットです。笑それは私の上で動作しません。

私にそれを明らかにする人には、ありがとうございます。

+1

あなたはUnicode jsonを受けているようですが、load関数を介して解析するために通常のjsonに変換してみてください。そうでなければ、ダンプメソッドを使用してみてください。 [詳細については参照してください](https://stackoverflow.com/questions/36954511/convert-unicode-json-to-normal-json-in-python)で 考えられる解決策:https://でのstackoverflow .com/questions/13940272/python-json-loads-returns-items-prefixing-with-u – segFaulter

答えて

0

コメントと同じようにUnicode jsonを受け取っていますが、出力するには通常の関数に変換する必要はありません。あなたは、単にこのような何かを行うことができます。

result1 = firebase.get('/Rooms/Room1/2017-11-29/Inspection/Scan-in/Inspector/', None) 
result2 = firebase.get('/Rooms/Room1/2017-11-29/Inspection/Scan-out/Inspector/', None) 
result1 = result1["brix"]["Nov 29, 2017 11:20:15 PM"]["Checklist"]["Luggage bench fabric top is clean"] 

あなたは

を受信します'u

なしませ

文字列は、ここで言及ません:https://docs.python.org/2/library/json.html

デコードを見てくださいJSONの部分には、StringIOのインポートがあります。あなたがまだそれを読んでいない場合は、そこを参照してください。