Ich versuche, den Header von einer Website zu bekommen, kodieren Sie es in JSON, um es in eine Datei zu schreiben. Ich habe zwei verschiedene Möglichkeiten ohne Erfolg ausprobiert.Holen Sie sich eine Kopfzeile mit Python und konvertieren in JSON (Anfragen - urllib2 - JSON)
FIRST mit urllib2 und json
import urllib2
import json
host = ("https://www.python.org/")
header = urllib2.urlopen(host).info()
json_header = json.dumps(header)
print json_header
auf diese Weise erhalte ich die Fehlermeldung:
TypeError: is not JSON serializable
Also versuche ich, dieses Problem zu umgehen, indem das Objekt in einen String konvertieren -> json_header = str (Header) Auf diese Weise ich json_header kann = json.dumps (Header), aber der Ausgang es ist seltsam:
"Date: Wed, 02 Jul 2014 13:33:37 GMT\r\nServer: nginx\r\nContent-Type: text/html; charset=utf-8\r\nX-Frame-Options: SAMEORIGIN\r\nContent-Length: 45682\r\nAccept-Ranges: bytes\r\nVia: 1.1 varnish\r\nAge: 1263\r\nX-Served-By: cache-fra1220-FRA\r\nX-Cache: HIT\r\nX-Cache-Hits: 2\r\nVary: Cookie\r\nStrict-Transport-Security: max-age=63072000; includeSubDomains\r\nConnection: close\r\n"
SECOND mit Anfragen
import requests
r = requests.get(“https://www.python.org/”)
rh = r.headers
print rh
{'content-length': '45682', 'via': '1.1 varnish', 'x-cache': 'HIT', 'accept-ranges': 'bytes', 'strict-transport-security': 'max-age=63072000; includeSubDomains', 'vary': 'Cookie', 'server': 'nginx', 'x-served-by': 'cache-fra1226-FRA', 'x-cache-hits': '14', 'date': 'Wed, 02 Jul 2014 13:39:33 GMT', 'x-frame-options': 'SAMEORIGIN', 'content-type': 'text/html; charset=utf-8', 'age': '1619'}
Auf diese Weise ist die Ausgabe wie mehr JSON, aber immer noch nicht in Ordnung (siehe ‚‚anstelle von „„und anderen Sachen wie die = und;). Offensichtlich gibt es etwas (oder viel) Ich mache nicht auf die richtige Weise. Ich habe versucht, die Dokumentation der Module zu lesen, aber ich kann nicht verstehen, wie man dieses Problem löst. Vielen Dank für Ihre Hilfe.
Vielen Dank @Slater Tyranus. Ihre zweite Methode ist genau das, wonach ich gesucht habe. Nur eine Frage aus Neugier. Wenn ich die Ausgabe Ihrer ersten Methode lese, sehe ich, dass Schlüssel und Werte in '' 'sind. Warum macht json.dumps das in diesem Fall? Sollte ein gültiges JSON-Format Werte in "" enthalten? –