1

を使用してDjangoにJSON文字列をロードしているsimplejsonため、次のようになります。

obj = json.loads('{"name": "joe"}')
person = obj.name

これはエラーをスローします:

'dict' object has no attribute 'name'

しかしobj、ビューテンプレートに渡して 経由{{ obj.name }}で印刷すると、うまくいきます! なんで?

4

2 に答える 2

7

Django の側面がどのように機能するかはわかりませんが、取得するオブジェクトjson.loadsは Pythondictオブジェクトです。つまり、キーの属性はありませんが、他の辞書と同じようにアクセスできます。

obj = json.loads('{"name": "joe"}')
person = obj['name']
于 2009-10-27T23:47:38.417 に答える
4

json.loadsjson を python 辞書にロードします。したがって、辞書のようにアクセスする必要がありますdata['key']

ここで、django テンプレート側で、公式のdjango テンプレートドキュメントを確認してください。

直接引用:

技術的には、テンプレート システムがドットに遭遇すると、次のルックアップをこの順序で試行します。

  • 辞書検索
  • 属性検索
  • メソッド呼び出し
  • リスト インデックス ルックアップ

基本的に、django テンプレートを使用すると、data.key構文を使用して辞書項目にアクセスできます。

于 2009-10-28T00:03:21.147 に答える