2012-02-01 8 views
7

は、だから私は、Pythonのコードウィッヒは、このようなJSON文字列を返します:Pythonで特定のJSON値をプリントする方法は?

'{"X": "value1", "Y": "value2", "Z": [{"A": "value3", "B": "value4"}]}' 

私は何をしたいことは、印刷および/またはそれを使用するために"value 3"(Pythonで)返すことです。私は後でそれを使用することができますので、変数にも割り当てます。

どうすればいいですか?

+0

コード上のミスのため申し訳ありません! thnx! – Jmlevick

+0

注: "simplejson"モジュールを使用してデータを解析しています – Jmlevick

+0

あなたの入力はまだ有効なJSONではありません。 'value1'と' value4'は引用符で囲まなければなりません。 'simplejson'でもあなたの入力を解読することはできません。 –

答えて

12
>>> import json 
>>> a = json.loads('{"X":"value1","Y":"value2","Z":[{"A":"value3","B":"value4"}]}') 
>>> a 
{'Y': 'value2', 'X': 'value1', 'Z': [{'A': 'value3', 'B': 'value4'}]} 
>>> a["Z"][0]["A"] 
'value3' 
+0

ああ! 2つのこと:私はデータを解析するために "simplejson"モジュールを使用しています。私の文字列は私の質問で最近編集されたものと同じです...あなたの答えは当てはまりますか?私はsimplejson.loads(datavariable)を使用しているので – Jmlevick

+0

ありがとう!これは私が達成しようとしていたことに対して完璧に機能しました! – Jmlevick

+0

私はPythonのJSON文字列から特定の値を読み取ることにもっと慣れ親しむために読むことができるチュートリアルはありますか? – Jmlevick

3

OK、私はあなたのJSONは、この(各value周り"に注意してください)のように見えると仮定します。でも:

import json 
j = '{"X":"value1", "Y":"value2", "Z":[{"A":"value3", "B":"value4"}]}' 
k = json.loads(j) 
assert k["Z"][0]["A"] == "value3" 

編集:

{"X":"value1", "Y":"value2", "Z":[{"A":"value3", "B":"value4"}]} 

次に、あなたがこれを行うことができますsimplejsonは元の入力をデコードできません。

>>> import simplejson 
>>> s1 = '{"X":value1,"Y":"value2","Z":[{"A":"value3","B":value4}]}' 
>>> simplejson.loads(s1) 
simplejson.decoder.JSONDecodeError: No JSON object could be decoded: line 1 column 0 (char 0) 
>>> s2 = '{"X":"value1", "Y":"value2", "Z":[{"A":"value3", "B":"value4"}]}' 
>>> print simplejson.loads(s2)["Z"][0]["A"] 
value3 
+0

ああ! 2つのこと:私はデータを解析するために "simplejson"モジュールを使用しています。私の文字列は私の質問で最近編集されたものと同じです...あなたの答えは当てはまりますか?私はsimplejson.loads(datavariable)を使用しているので、 – Jmlevick

関連する問題