2017-02-03 4 views
0

Ich bin eine HTTP-POST-Anfrage an einen api mit Python-Anfragen Modul sendet, die eine Antwort wie unten zurück:Python Requests: Parsen eine Unicode Antwort

print resp.text 
[{\"status\":\"Success\",\"message\":\"3432ursuyfskfb\"}] 

print type(resp.text) 
<type 'unicode'> 

Wie analysieren ich diese Antwort auf eine Liste oder Wörterbuch und Extract 'Status' und 'Nachricht' oder gibt es eine bessere Möglichkeit, diese Antwort zu parsen?

+4

Verwenden Sie 'resp.json()'? Es ist buchstäblich im ersten Beispiel in der Dokumentation: http://docs.python-requests.org/en/master/ – jonrsharpe

+0

Drucken resp.json gibt mir [{"Status": "Erfolg", "Nachricht": "a6ZV0000000FzOQMA0 "}] aber es ist immer noch Typ . Wie extrahiere ich den 'Status' und die 'Nachricht' daraus? –

+0

... ja? Genau das hättest du erwarten sollen. Das ist eine Liste mit einem Wörterbuch, dem Python-Äquivalent eines Objekts in einem Array. – jonrsharpe

Antwort

0

Sie können resp.json() dazu verwenden. Siehe folgendes Beispiel

>>> r = requests.get('https://api.github.com/user', auth=('user', 'pass')) 
>>> r.status_code 
200 
>>> r.headers['content-type'] 
'application/json; charset=utf8' 
>>> r.encoding 
'utf-8' 
>>> r.text 
u'{"type":"User"...' 
>>> r.json() 
{u'private_gists': 419, u'total_private_repos': 77, ...}