问题描述
我正在使用 django_celery_results
来保存一些 celery 任务的结果。每个任务都将 kwargs
作为输入,最后保存在 task_kwargs
的 TaskResult
字段中。
我在稍后加载这些 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)
不漂亮,但很管用。