Как сериализовать запросы объекта Response как HAR - PullRequest
6 голосов
/ 04 июня 2019

Я хочу сериализовать запросы Response объекта как json, предпочтительно в формате HAR .

import requests
resp = requests.get('http://httpbin.org/get')

har = to_har(resp)  # <--- magic

но ничего не смог найти в Интернете с моими полномочиями google-fu.

кажется, что все данные существуют на объекте Response, я надеюсь, что мне не нужно реализовывать всю спецификацию HAR, и существует некоторый код / ​​утилита, которую я могу использовать повторно.

правильный ответ может дать: существующей библиотеки или обратитесь к исходной точке, если пока ничего не существует для python и / или requests.

в настоящее время мое более простое 3-минутное решение (не в формате HAR) для объекта Response выглядит следующим образом (может быть хорошей отправной точкой, если ничего не существует):

def resp2dict(resp, _root=True):
    d = {
        'text': resp.text,
        'headers': dict(resp.headers),
        'status_code': resp.status_code,
        'request': {
            'url': resp.request.url,
            'method': resp.request.method,
            'headers': dict(resp.request.headers),
        },
    }

    if _root:
        d['history'] = [resp2dict(h, False) for h in resp.history]
    return d

я публикую это, так как думаю, что не только я изо всех сил стараюсь сериализовать Response объекты в json в целом независимо от формата HAR.

...