【发布时间】:2019-05-10 19:31:16
【问题描述】:
我将此 HTTP 标头存储为字符串。我想以 JSON 格式加载它以便能够:
检查标头是否存在。
如果标头不存在,我需要它打印
"no-header"如果存在,我需要检查一些选择的指令的存在和内容。例如,如果找到
'Strict-Transport-Security',我需要检查它是否有max-age指令。max-age是 1111。
如何做到这一点?我最初的尝试是:
import json
mystring="{'Server': 'nginx', 'Date': 'Fri, 19 Apr 2019 05:46:00 GMT', 'Content-Type': 'text/html; charset=cp1251', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Content-Encoding': 'gzip', 'Vary': 'Accept-Encoding', 'Strict-Transport-Security': 'max-age=31536000; includeSubDomains; preload'}"
d = json.loads(mystring)
print(d['Strict-Transport-Security'])
我收到了这个错误:
Traceback (most recent call last): File "test.py", line 5, in
<module>
d = json.loads(mystring)
File "/usr/lib/python2.7/json/__init__.py", line 339, in loads
return _default_decoder.decode(s)
File "/usr/lib/python2.7/json/decoder.py", line 364, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python2.7/json/decoder.py", line 380, in raw_decode
obj, end = self.scan_once(s, idx)
ValueError: Expecting property name: line 1 column 2 (char 1)
我需要加载这个字符串格式(看起来像字典)并将其解析为:
检查是否存在标头名称。
根据某些定义的标准(例如包含、不包含等)检查其内容。
【问题讨论】:
-
你已经问过这个问题了!使用
eval(mystring)将其变成字典。 -
请提供一个完整的答案,这样我就能明白你所说的。我不明白。
-
我的意思是编码plz。
-
我回答了这个问题。不过,我觉得一开始就很清楚。
标签: python-3.x ssl header python-requests http-headers