2015-06-14 38 views
1

我遇到了一些問題獲取到python字典的cookie的問題。即使在運行由請求提供的命令之後,它似乎都會以某種方式被轉義。從cookiejar問題請求字典與轉義字符

resp = requests.get(geturl, cookies=cookies) 
cookies = requests.utils.dict_from_cookiejar(resp.cookies) 

,這是餅乾的樣子

{'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的價值部分轉義字符轉義變得和零件?

編輯:想字典

我看是這樣的:

{'format': 'm3u8', 'variant': 'corrected', 'mode': u'live', 'pid': u'NTA2NjU0OTU4MDc5MTgwOA==', 'type': 'video/mp2t'} 
+0

爲了清晰起見,你可以發佈你想要的字典看起來像什麼? – ChrisGuest

+0

發佈我想要的樣子。 – AndrewD

回答

3

你正在處理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'} 
+1

我不知道以前有沒有人告訴過你,但你很美。 – AndrewD

+0

嘿,你會知道如何在這種情況下保持頂級字典嗎?或者更好的是,一些文檔描述了這裏究竟發生了什麼哈哈。我非常感謝幫助。 – AndrewD

+0

你的意思是像'{'P-fa9d887b1fe1a997d543493080644610':{'pid':...}}'? – ChrisGuest