+-

我想编码下面显示的示例内容:
name = "Myname"
status = "married"
sex = "Male"
color = {'eyeColor' : 'brown', 'hairColor' : 'golden', 'skinColor' : 'white'}
我使用base64编码方案并使用语法作为< field-name> .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是字符串实例具有的方法,而不是字典.您不能简单地将它与每个对象的每个实例一起使用.
所以最简单的解决方案是首先在字典上调用str:
所以最简单的解决方案是首先在字典上调用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.
点击查看更多相关文章
转载注明原文:如何编码python字典? - 乐贴网