在寫爬蟲的時候,經常需要處理cookie,requests庫里的cookie是dict,但是headers[『cookie』]卻是乙個key=value的字串。
#coding=utf-8
''''''
import logging
#key=value列表轉換成cookie字典
defcookie_list_2_dict
(cookli):if
notisinstance
(cookli,
list):
logging.error(
'error list param...'
)return
return
#heads['cookie']字串轉換成cookie字典
defcookie_str_2_dict
(cookstr):if
notisinstance
(cookstr,
str)
: logging.error(
'error str param...'
)return
cookstr = cookstr.split(
';')
return cookie_list_2_dict(cookstr)
#cookie字典轉換成key=value列表
defcookie_dict_2_list
(cookdi):if
notisinstance
(cookdi,
dict):
logging.error(
'error dict param...'
)return
cookli =
["%s=%s"
%(key,value)
for key,value in cookdi.items()]
return cookli
#cookie字典轉換成heads['cookie']字串
defcookie_dict_2_str
(cookdi):if
notisinstance
(cookdi,
dict):
logging.error(
'error dict param...'
)return
"" cookli = cookie_dict_2_list(cookdi)
return
';'.join(cookli)
if __name__==
'__main__'
: cookies =
cookli = cookie_dict_2_list(cookies)
cookstr = cookie_dict_2_str(cookies)
print
('cook list'
,cookli)
print
('cook str'
,cookstr)
cookdi1 = cookie_str_2_dict(cookstr)
cookdi2= cookie_list_2_dict(cookli)
print
('cook dict 1'
,cookdi1)
print
('cook dict 2'
,cookdi2)
輸出結果:
cook list
['ast=1525005900068b4106e25d4'
,'___bz=708632|41171989|2b7718|aladin2_freexx'
,'platform=h5'
]cook str ast=
1525005900068b4106e25d4
;___bz=
708632
|41171989
|2b7718
|aladin2_freexx;platform=h5
cook dict
1cook dict
2
python 列表與字典相互轉換
1.2個列表轉換為字典 2.使用內建函式 zip 3.求乙個列表中所有資料型別的次數 encoding utf 8 l 1,2,s 1,23 1,2 set 1,2 b 2 d 先用字典定義列表中的資料型別 for i in l if isinstance i,str 判斷字串型別 d str 1 ...
Python 字典轉換為列表
說明 列表不可以轉換為字典 轉換後的列表為無序列表 a 字典中的key轉換為列表 key value list a.keys print 字典中的key轉換為列表 key value 字典中的value轉換為列表 value list list a.values print 字典中的value轉換為...
python 列表 字典 string 互相轉換
1 dict 轉為 string 使用str方法 a a str a print a,type a 2 string 轉為 dict 使用eval方法 a a eval a print a,type a 3 list 轉為string 使用join方法,單引號內為字元連線的符號,可以為空,也可以為 ...