Я пытаюсь получить заголовок с веб-сайта, закодировать его в JSON, чтобы записать в файл. Я пробовал два разных способа без успеха.
ПЕРВЫЙ с urllib2 и json
import urllib2
import json
host = ("https://www.python.org/")
header = urllib2.urlopen(host).info()
json_header = json.dumps(header)
print json_header
таким образом я получаю ошибку:
TypeError: нельзя сериализовать JSON
Поэтому я пытаюсь обойти эту проблему, преобразуя объект в строку -> json_header = str(header) Таким образом, я могу json_header = json.dumps(header), но вывод получается странным:
"Дата: среда, 02 июля 2014 г., 13:33:37 по Гринвичу\r\nСервер: nginx\r\nContent-Type: text/html; charset=utf-8\r\nX-Frame-Options: SAMEORIGIN\r\nContent -Длина: 45682\r\nAccept-Диапазоны: байты\r\nVia: 1.1 лак\r\nВозраст: 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"
ВТОРОЙ с запросами
import requests
r = requests.get(“https://www.python.org/”)
rh = r.headers
print rh
{'content-length': '45682', 'через': '1.1 лак', 'x-cache': 'HIT', 'accept-ranges': 'bytes', 'strict-transport-security': 'max -возраст=63072000; includeSubDomains», «различные»: «Cookie», «сервер»: «nginx», «x-served-by»: «cache-fra1226-FRA», «x-cache-hits»: «14», «дата» : 'Ср, 02 июля 2014 г., 13:39:33 по Гринвичу', 'x-frame-options': 'SAMEORIGIN', 'content-type': 'text/html; кодировка=utf-8', 'возраст': '1619'}
Таким образом, вывод больше похож на JSON, но все же не в порядке (см. « » вместо « « и другие вещи, такие как = и ;). Очевидно, есть что-то (или многое), что я делаю не так. Я пытался читать документацию модулей, но не могу понять, как решить эту проблему. Спасибо за помощь.