2014-04-22 13 views
5
import requests 
r = requests.get('http://httpbin.org/get'); 
r.text 

restituisce:Python: ottenere gli attributi di stringa JSON restituita

u'{\n "url": "http://httpbin.org/get",\n "headers": {\n "Host": "httpbin.org",\n "Accept-Encoding": "gzip, deflate, compress",\n "Connection": "close",\n "Accept": "*/*",\n "User-Agent": "python-requests/2.2.1 CPython/2.7.5 Windows/7",\n "X-Request-Id": "db302999-d07f-4dd6-8c1e-14db45d39fb0"\n },\n "origin": "61.228.172.190",\n "args": {}\n}' 

Come possono ottenere i valori origin e headers/Host?

grazie

risposta

13

Ciò che viene restituito è una stringa JSON; è necessario analizzarlo prima di poterlo usare comodamente. Le richieste possono farlo per te se chiami r.json() anziché r.text.

Poi è solo una questione di fare:

resp = r.json() 
print resp['origin'] 
print resp['headers']['Host'] 
+6

'r.text' può utilizzare una codifica dei caratteri sbagliato, basta usare' r.json() 'sempre – jfs

+1

grazie, buono a sapersi! –

+0

perché ricevo una stringa da json()? – Crusader

Problemi correlati