2016-07-25 18 views
0

私は生の形で次のようになりJSON解析しようとしています:
{「OK」:真の「価値」を:43768746}
私はこれをやっています:
ライン= line.strip()。( "UTF-8")を復号
j_proper = json.dumps(ライン)
J = json.loads(j_proper)
印刷J [ '値']のpython :: HOWTO解析JSONとアクセス要素

が表示されますが、エラーが発生します:
印刷j ['値']
TypeError例外:
:私はライン、j_proper、jとその種類を印刷する場合、文字列のインデックスは整数

でなければならない私は、この取得{ 'OK':真の '価値' を:43768746}
<型 'ユニコード'>
"{ 'OK':真、 '値':43768746}"
<タイプ 'STR'>
{ 'OK':真、 '値':43768746}
<タイプ 'ユニコード'>

このようなjsonとアクセスtを解析する正しいレシピは何ですか?彼は "値"の数ですか?
ありがとうございます!

+1

受信した構造を通常の辞書としてみませんか? – wanderlust

+0

あなたはあなたの質問に詳しいことができますか? j_proper ['Value']を試してみるのですか?私は同じようなエラーが発生する –

+0

また、なぜ私の質問がダウン投票したか知りたいのですが..私は自分の能力の最高の件名を研究し、私の目標を達成するために成功しなかった.. –

答えて

4

JSON文字列が正しくありません。正しい形式は次のようになります

{ "OK":真、 "値":43768746}

変更:

  • 二重引用符の代わりに単一引用符
  • 低い "T" の代わりに

    ライン=「{ "OK":真、 "値" 437687 "真"

例えば、 "T" 46}
J = json.loads(ライン)

{u'OK ':真、u'Value':43768746}

J [ '値'] = 43768746
J [ 'OK'] = True

+0

私は編集しようとした{OK}:true、 "Value":43814485} "{\" OK \ ":true、\" Value \ ":43814485}" {"OK":true 、 "値":43814485} トレースバック(最新の呼び出しの最後): ファイル "dirac.status_list.py"、29行目は、 印刷j_proper [ '値']で はTypeError:文字列のインデックスは、整数ではなく、STRでなければなりません –

+0

私はjson.dumpsを削除し、クリーンアップの行はjson.loadsと直接関係していました。ありがとうございました!! –

関連する問題