前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python3 下列表与字典转换

python3 下列表与字典转换

作者头像
黯然销魂掌
发布2018-09-27 11:02:17
5740
发布2018-09-27 11:02:17
举报
文章被收录于专栏:python爬虫日记

在写爬虫的时候,经常需要处理cookie,requests库里的cookie是dict,但是headers['cookie']却是一个key=value的字符串。

下面是几个用推导式实现的转换函数,供大家参考。

代码语言:javascript
复制
#coding=utf-8
#create by :joshua zou 
#create date :2018.5

import logging

#key=value列表转换成cookie字典
def cookie_list_2_dict(cookli):
    if not isinstance(cookli,list): 
        logging.error('error list param...')
        return {}
    
    return {item.split('=')[0]:item.split('=')[1] for item in cookli}

#heads['cookie']字符串转换成cookie字典
def cookie_str_2_dict(cookstr):
    if not isinstance(cookstr,str):
        logging.error('error str param...')
        return {}
    
    cookstr = cookstr.split(';')
    return cookie_list_2_dict(cookstr)

#cookie字典转换成key=value列表
def cookie_dict_2_list(cookdi):
    if not isinstance(cookdi,dict):
        logging.error('error dict param...')
        return []
    cookli = ["%s=%s" %(key,value) for key,value in cookdi.items()]
    return cookli

#cookie字典转换成heads['cookie']字符串
def cookie_dict_2_str(cookdi):
    if not isinstance(cookdi,dict):
        logging.error('error dict param...')
        return ""
    cookli = cookie_dict_2_list(cookdi)
    return ';'.join(cookli)


if __name__=='__main__':
    cookies = {'AST': '1525005900068b4106e25d4', '___bz': '708632|41171989|2b7718|aladin2_freexx', 'platform': 'H5'}
    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)

输出结果:

代码语言:javascript
复制
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 1 {'AST': '1525005900068b4106e25d4', '___bz': '708632|41171989|2b7718|aladin2_freexx', 'platform': 'H5'}
cook dict 2 {'AST': '1525005900068b4106e25d4', '___bz': '708632|41171989|2b7718|aladin2_freexx', 'platform': 'H5'}

以上。。。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-04-30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档