requests的作者似乎为了解决header里大小写兼容的问题,而创建了大小写不敏感的数据结构CaseInsensitiveDict,requests返回的响应标头即是一个CaseInsensitiveDict类型。
但响应标头里通常并非只有key-value形式的简单数据,而是存在更复杂的多层嵌套数据,如果想将响应标头序列化,就会出现报错TypeError: Object of type CaseInsensitiveDict is not JSON serializable。
因为CaseInsensitiveDict是requests作者自定义类型,json.dupms并不支持。
为了解决这个问题,可以提前将CaseInsensitiveDict类型的object转为dict再json.dupms序列化,如下:
response_header = json.loads(json.dumps(dict(response.headers)))
request_header = json.loads(json.dumps(dict(response.request.headers)))
手机扫一扫
移动阅读更方便
你可能感兴趣的文章