2

私はpythonとdjangoが初めてです。

私のdjangoビューのアプリケーションでは、json.loadsを使用してJSONオブジェクトの配列(およびサブ配列)をリクエストとして受け入れていますが、JSONオブジェクトを解析して反復しようとしていますが、解析中に問題に直面しています。

クライアントから送信された私のJavaScriptオブジェクトは

var JSONObject = { 
       "employees_companyA": 
        [
          { "firstName":"John" , "lastName":"Doe" }, 
          { "firstName":"Anna" , "lastName":"Smith" }, 
          { "firstName":"Peter" , "lastName":"Jones" }
        ],

      "employees_companyB": 
        [
          { "firstName":"John" , "lastName":"Doe" }, 
          { "firstName":"Anna" , "lastName":"Smith" }, 
          { "firstName":"Peter" , "lastName":"Jones" }
        ]
     };

上記の 2 つのオブジェクトを解析し、firstName、lastName を同じものとして読み取る最良の方法は何ですか。

o["firstName"]、o.firstNameなどを使用してみました(以下は私のコードスニペットです)

   json_obj = json.loads(request.POST['json_test']) 
   for o in json_obj:
        temp_arr.append(o["firstName"])

これはかなり簡単だと確信していますが、ここで正確なヘルプを見つけることができませんでした。

4

1 に答える 1

2

JSON 構造の最上位要素はリストではなく、マッピングです。キーの形式"employees_companyA""employees_companyB"、 などです。

したがって、代わりにpython マッピング インターフェイスを使用してその構造に対処する必要があります。

for value in json_obj.itervalues():
     temp_arr.append(value[0]["firstName"])

またはワンライナーとして:

temp_arr = [value[0]['firstName'] for value in json_obj.itervalues()]

どちらも.itervalues()メソッドonを使用json_objして、構造体のすべての値をループします。

于 2012-07-29T19:53:38.887 に答える