如何编码python字典?

 手机用户2502914831 发布于 2023-01-06 19:35

我想编码下面显示的示例内容:

name = "Myname"
status = "married"
sex = "Male"
color = {'eyeColor' : 'brown', 'hairColor' : 'golden', 'skinColor' : 'white'}

我使用base64编码方案并使用语法,.encode('base64','strict')其中field-name包括上述字段 - 名称,状态等.

除字典"颜色"之外的所有内容都会被编码.我得到错误color.encode('base64','strict')

错误如下所示:

Traceback (most recent call last):
    color.encode('base64','strict') 
AttributeError: 'CaseInsensitiveDict' object has no attribute 'encode'

我认为编码方法不适用于字典.我该如何一次编码完整的字典?是否有encode适用于词典的方法的替代方法?

1 个回答
  • encode是字符串实例具有的方法,而不是字典.您不能简单地将它与每个对象的每个实例一起使用.所以最简单的解决方案是首先调用str字典:

    str(color).encode('base64','strict')
    

    但是,如果您想要解码字符串并重新获得该字典,则不太直接.Python有一个模块可以做到这一点,它被称为pickle.Pickle可以帮助您获取任何对象的字符串表示,然后您可以将其编码为base64.解码后,您还可以取消它以取回原始实例.

    b64_color = pickle.dumps(color).encode('base64', 'strict')
    color = pickle.loads(b64_color.decode('base64', 'strict'))
    

    pickle + base64的其他替代品可能是json.

    2023-01-06 19:38 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有