如何从`django_celery_results`中的`TaskResult`模型加载`task_kwargs`?

问题描述

我正在使用 django_celery_results 来保存一些 celery 任务的结果。每个任务都将 kwargs 作为输入,最后保存在 task_kwargsTaskResult 字段中。

我在稍后加载这些 kwargs 时遇到问题,因为它们在数据库中保存的方式。例如这是一个条目:

"{'config_file_path': '/path/to/configs/some_config.json'}"

访问字段值的简单示例:

tkwargs = TaskResult.objects.get(id=1).task_kwargs

我得到了上面的字符串。

获取 task_kwargs 作为 python 字典而不是字符串的直接方法是什么?

解决方法

这就是我所拥有的:

args = json.loads(task.task_kwargs)
if isinstance(args,str):
    args = args.replace("'",'"')
    args = json.loads(args)

不漂亮,但很管用。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...