python - 从 JSON 字符串中转义数据的任何巧妙方法?

标签 python celery web2py

我正在向 web2py 服务器发送一些 jsonrpc 请求,后端是 celery。有时,我会收到要分析的错误。错误在jsonrpc 回复中转义,因此不容易理解。我得到这样的东西:

{"version": "1.1", "id": "ID4", "error": {"message": "TypeError: 'NoneType' object does not support item assignment", "code": 100, "data": ["  File \"/home/myuser1/tmp/web2py/gluon/tools.py\", line 4068, in serve_jsonrpc\n    s = methods[method](*params)\n", "  File \"/home/myuser1/tmp/web2py/applications/mycompany_portal/controllers/activity.py\", line 66, in get_cdr_page\n    invalidate_cache = pars['invalidate_cache'], use_long_polling = pars['use_long_polling'])\n", "  File \"/home/myuser1/projects/new-mycompany-portal/python_modules/pmq_client.py\", line 85, in get_page\n    res = result.get(timeout=10)\n", "  File \"/home/myuser1/.virtualenvs/python2.7.2-mycompany1/lib/python2.7/site-packages/celery/result.py\", line 119, in get\n    interval=interval)\n", "  File \"/home/myuser1/.virtualenvs/python2.7.2-mycompany1/lib/python2.7/site-packages/celery/backends/amqp.py\", line 138, in wait_for\n    raise self.exception_to_python(meta['result'])\n"], "name": "JSONRPCError"}}

我想要的是获取 jsonrpc 回复的 error.data 部分,将其取消转义并将其显示为堆栈跟踪。我可以手动完成(更改 \" -> " 并处理 \n),但我想避免在这里重新发明轮子.

最佳答案

这是未解析的原始 JSON 吗?将其解析为 JSON:

import json
print ''.join(json.loads(yourstring)['error']['data'])

关于python - 从 JSON 字符串中转义数据的任何巧妙方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14053254/

相关文章:

r - 使用 celery 在 pyRserve 中进行并行编程

python - 我如何在 API 和工作人员中使用具有不同代码库的 celery

python - celeryd 进程的数量是否取决于 --concurrency 设置?

Mac Lion 上的 Python 2.5.6 构建错误

python - 正则表达式替换包含给定子字符串的完整字符串

python - 为什么 Python 内置类型名称不是保留关键字?

python - JSON 解码字符串 - 未终止的字符串

javascript - web2py控件表单,选择选项时显示字段

python - 哪个更适合使用 web2py 进行生产?

python - 如何将包含多个字符串的 python 数组保存到人类可读的文件中