python - django/python 将表示 python 字典的字符串转换为字典对象

标签 python django

我有一个字符串代表从数据库表返回的 python 字典,例如

{'name': 'John', 'email': 'test@test.com'}

其中 {'name': 'John', 'email': 'test@test.com'} 作为字符串从数据库返回

然后我有一个函数接收字典作为 **kwargs 例如

def print_details(*args, **kwargs):
    name = kwargs.pop('name', None)
    email = kwargs.pop('email', None)

    print "%s - %s " % (name, email)

我想做

dict = DB return value
print_details(dict) 

但我不知道如何将字符串字典转换成python字典

我正在使用 Django,但如果 Django 没有办法,那么 Python 显然也可以工作

最佳答案

ast.literal_eval是一个非常受限制的、更安全的 eval,它只评估文字(例如,包含字符串、整数、 float 、……文字的字典、元组或列表文字)。

JSON 解析器也适用于更受限制的子集( bool 值不同,null 而不是 None,没有元组,甚至更多)。同样,the standard library can do this (并且有针对旧 Python 版本的第三方解决方案)。

关于python - django/python 将表示 python 字典的字符串转换为字典对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5028168/

相关文章:

python - Pandas 随机插入不存在的分隔符

python - 用类创建对象,为什么需要__init__(self, args) :?

python - Django - 在views.py内部使用我自己的REST API的正确方法?

django - 使用 django 模板 url 标签时,项目名称自动插入到 url 中

python - 使用 Python 移动最小值

python - 并行运行 CrossValidationCV

python - 使用大写字母和数字生成随机字符串

python - django.core.exceptions.AppRegistryNotReady : Apps aren't loaded yet. django 1.8

python - 多项选择未保存在数据库中

python - 引发 RuntimeError ('You need to use the eventlet server. '