如何跳过web.py渲染完成的默认编码或将其解码为JSON变量的最佳方法是什么?

时间:2012-02-06 11:22:45

标签: python dictionary json web.py

我有一个python字典被传递给web.py框架中的javascript。 dict中的双引号被特殊字符替换,我无法恢复原始格式。有没有办法避免编码或解码它的理想方法是什么?我已经在dict上尝试了JSON.dumps但是它再次执行了不同的编码,我无法使用JSON.parse或eval对其进行解码。

内联声明的相同字典格式javascript完美地用作JSON变量。

我是JSON和javascript的新手,并且不想编写我自己的新解码功能。

我的dict变量:

{'slca': [{'hssInit': 14}, {'hssFail': 2}], 'slcb': [{'hssInit': 15}, {'hssFail': 3}], 'phx': [{'hssInit': 12}, {'hssFail': 1}]}

编码var:

 var myData = "{'slca': [{'hssInit': 14}, {'hssFail': 2}], 'slcb': [{'hssInit': 15}, {'hssFail': 3}], 'phx': [{'hssInit': 12}, {'hssFail': 1}]}";

糟糕 - 当我将特殊字符粘贴到此处时,它会自动转换为字符串。 看起来我错过了一些非常基本的东西。但是javascript会为我抛出语法错误: - (

1 个答案:

答案 0 :(得分:0)

我真的需要看一些代码来了解web.py如何返回你的字典,但问题很可能就是你的字典作为字符串返回。这就是为什么你得到'字符代码(撇号,而不是双引号)。所以你实际上并没有得到JSON,你得到了str(你的想法)。它很接近,但不对。

如果您的代码类似于:

def GET(self):
    return {'prop1': 'val', 'prop2': 4}

尝试使用json模块翻译字典

import json

# ...

def GET(self):
    data = {'prop1': 'val', 'prop2': 4}
    return json.dumps(data)