此问题已在此处有答案:
Convert a String representation of a Dictionary to a dictionary(12个回答)
去年就关门了。
这篇文章是编辑并提交审查8小时前.
我有一个bytes类型的对象,如下所示:
b"{'one': 1, 'two': 2}"
我需要使用Python代码从上面的字节类型对象中获取适当的Python字典。
string = b"{'one': 1, 'two': 2}"
d = dict(toks.split(":") for toks in string.split(",") if toks)
但是我得到了下面的错误:
------> d = dict(toks.split(":") for toks in string.split(",") if toks)
TypeError: 'bytes' object is not callable
5条答案
按热度按时间j2datikz1#
我认为解码也是需要得到一个适当的口述。
公认的答案是
literal_eval在我的许多代码中都没有正确地完成这一任务,所以我个人更喜欢使用json模块来完成这一任务。
u0sqgete2#
你只需要
ast.literal_eval
。没有比这更好的了。没有理由乱用JSON,除非你在你的字符串中使用非Python的dict语法。答案here它还详细说明了
ast.literal_eval
如何比eval
更安全。3zwtqj6y3#
你可以这样尝试:
有模块的文档:
hjzp0vay4#
您可以使用Base64库将字符串字典转换为字节,尽管您可以使用json库将字节结果转换为字典。试试下面的示例代码。
mkh04yzy5#
简单