2016-06-15 14 views
1
{ 
"card_quota": 0, 
"custom_data": "{\"child_name\":\"홍설\",\"uid\":\"29\",\"lid\":\"56\",\"count\":\"1\",\"schedule\":\"2016-06-18(토)\"}", 
"escrow": false 
} 

これはPythonの辞書型です。私はtemp ['card_quata']のようなコードを使って価値を得ることにしました。しかし、私は['custom_data']のキーをchild_nameやuidのような値で取得することを知りたいです。どうすればいいですか?pythonマルチ辞書でキーを使用して値を取得する方法

+0

'False'の代わりに' false'を使用すると 'NameError'が発生します – dazedconfused

答えて

4

あなたはjson.loadscustom_dataを解析して、返さdictアクセスすることができます。

を210
>>> import json 
>>> json.loads(temp['custom_data'])['child_name'] 
'홍설' 

Pythonがfalseの代わりにFalseを使用しているため、提供したサンプルデータは有効なPythonではないことに注意してください。

+0

ありがとう。それは動作します。申し訳ありませんが、なぜjson.loadsメソッドがjson.loads(temp)を書き込むと動作しないのかわかりません??? – LeeJinHee

+0

@LeeJinHee与えられた例では、 'temp'は辞書であり、文字列ではありません。 '読み込み'は 'str'(または' unicode')を取り込み、逆シリアル化します。 – niemmi

+0

oh!本当に感謝しています – LeeJinHee

-1

キーを使用して任意の辞書の値を取得できます。だから、ステップバイステップでそれを取ることができます: まず、辞書取得することができます -

temp['custom_data'] 

はあなたの子辞書を与えるであろう、そして、この子辞書の項目にアクセスするために、あなたは子キーを使用することができます。

temp['custom_data']['child_name'] 
temp['custom_data']['uid'] 

など

+0

jsonで、そのキーにアクセスする前にjson.loads()を持っていたことを忘れてしまいました –

+0

thanks 。しかし、custom_dataの値はdict型ではありませんので、動作しません。値の型はstrです。したがって、私はcustom_dataの値はdictの型を変換する必要がありますと思います。 – LeeJinHee

+0

はい、したがって@ニームミ答えはあなたのために働くはずです –

関連する問題