2017-02-03 5 views
-1

私はr = requests.post(something)を使用しています。私はjsonが返されることを期待しています。 r.headersを見ると、私は戻って'Content-Type': 'application/json' and 'Content-Encoding': 'gzip'になる。Python json.loads(r.text)がタイプ<class 'list'>を返します。

私はdictのオブジェクトを期待していjson.loads(r.text)を行う代わりに、それは<class 'list'> これは辞書を作成していない理由の任意のアイデアですか?しかし、

[{'contentId': '0ee022728af31b01', 'creationTS': 1484778192149,  
'updateTS': 1484778192188, 'lastUser': 'cmmigration', 'mimeType': 
'application/pdf', 'sourcePath': None, 'effectiveTS': None, 
'softDeleteTS': None, 'contentFileName': '[DRAFT] (null).pdf', 
'applicationId': 'ICX', 'currentState': 1, 'applicationName': 'ICX', 
'versionNum': 1, 'chronicleId': '0ee022728af31b00', 'expirationTS': 
1650030026000, 'versionLabel': 'WIP', 'contentFilePath': 
'/PO/2015/03/13/49412051/', 'lockDate': None, 'encryptedFlag': False, 
'authorId': 'migration', 'solrACLList': None, 'customAttributes': 
'{"r_object_id":"097b4c76800e5d55","icon_view_allow":"SP","subject":"Icon" 
,"icon_pvendor":620418,"r_creation_date":"2015-04-17T09:40:28","ic_store_num":"xxxx","ic_mvendor":50031248,"ic_oded":"0","ic_upd_user_id":"txrxxx","icon_src_system":"I2GO","isanned":"0","icon_po_lead_date":"2015-04-13T20:35:06","language_code":"en_US","ic_user_id":"txrxxx","r_modify_date":"2015-04-17T09:40:29","i_po_num":"49412051","icon_bus_doc":750,"i_indexed":"0","icon_lead_num":"-1"}', 'softDeleteFlag': False, 'lockFlag': False, 'archiveTS': None, 'lockId': None, 'fileSize': 223062}]</pre> 
+0

データは '{}'ではなく '[]'で囲まれているので、オブジェクト(dict)ではなく配列(つまりリスト)になります。 – BrenBarn

+1

'json.loads(r.text)'ではなく 'r.json()'を実行することができますが、同じ結果が得られることに注意してください。 –

+0

FYI、リクエストパッケージにはjsonの便利なメソッドがあり、これはリクエストループと少し統合されています。http://docs.python-requests.org/ja/master/user/quickstart/#json-response-内容 – systemjack

答えて

5

データであることをリスト:

データのようなルックスを返されました。 [{...}]は、単一の要素を含むリストであり、その要素はdictです。

dictだけを使用する場合は、my_dict = json.loads(r.text)[0]を入力してください。

+0

それが問題を解決しました。 – user3670332

関連する問題