从带有转义字符的 cookiejar 问题中请求字典
Requests dict from cookiejar issue with escaped chars
我 运行 在使用 python 将 cookie 放入字典时遇到了一些问题。即使在 运行 requests 提供的命令之后,它似乎也以某种方式全部转义了。
resp = requests.get(geturl, cookies=cookies)
cookies = requests.utils.dict_from_cookiejar(resp.cookies)
这就是 cookie 的样子
{'P-fa9d887b1fe1a997d543493080644610': '"\050dp1\012S\'variant\'\012p2\012S\'corrected\'\012p3\012sS\'pid\'\012p4\012VNTA2NjU0OTU4MDc5MTgwOA\075\075\012p5\012sS\'format\'\012p6\012S\'m3u8\'\012p7\012sS\'mode\'\012p8\012Vlive\012p9\012sS\'type\'\012p10\012S\'video/mp2t\'\012p11\012s."'}
有什么方法可以让P-fa9d887b1fe1a997d543493080644610的值部分未转义的字符转义并成为dict本身的一部分吗?
编辑:
我希望字典看起来像这样:
{'format': 'm3u8', 'variant': 'corrected', 'mode': u'live', 'pid': u'NTA2NjU0OTU4MDc5MTgwOA==', 'type': 'video/mp2t'}
您正在处理用于数据序列化的 Python Pickle 格式。计算表达式后,转义字符未转义,您需要使用 pickle.loads
函数从字符串加载 pickle。
>>> import pickle
>>> import ast
>>> pickle.loads(ast.literal_eval("'''" + cookies.values()[0] + "'''")[1:-1])
{'pid': u'NTA2NjU0OTU4MDc5MTgwOA==', 'type': 'video/mp2t', 'variant': 'corrected', 'mode': u'live', 'format': 'm3u8'}
我 运行 在使用 python 将 cookie 放入字典时遇到了一些问题。即使在 运行 requests 提供的命令之后,它似乎也以某种方式全部转义了。
resp = requests.get(geturl, cookies=cookies)
cookies = requests.utils.dict_from_cookiejar(resp.cookies)
这就是 cookie 的样子
{'P-fa9d887b1fe1a997d543493080644610': '"\050dp1\012S\'variant\'\012p2\012S\'corrected\'\012p3\012sS\'pid\'\012p4\012VNTA2NjU0OTU4MDc5MTgwOA\075\075\012p5\012sS\'format\'\012p6\012S\'m3u8\'\012p7\012sS\'mode\'\012p8\012Vlive\012p9\012sS\'type\'\012p10\012S\'video/mp2t\'\012p11\012s."'}
有什么方法可以让P-fa9d887b1fe1a997d543493080644610的值部分未转义的字符转义并成为dict本身的一部分吗?
编辑:
我希望字典看起来像这样:
{'format': 'm3u8', 'variant': 'corrected', 'mode': u'live', 'pid': u'NTA2NjU0OTU4MDc5MTgwOA==', 'type': 'video/mp2t'}
您正在处理用于数据序列化的 Python Pickle 格式。计算表达式后,转义字符未转义,您需要使用 pickle.loads
函数从字符串加载 pickle。
>>> import pickle
>>> import ast
>>> pickle.loads(ast.literal_eval("'''" + cookies.values()[0] + "'''")[1:-1])
{'pid': u'NTA2NjU0OTU4MDc5MTgwOA==', 'type': 'video/mp2t', 'variant': 'corrected', 'mode': u'live', 'format': 'm3u8'}