【发布时间】:2014-02-14 15:19:05
【问题描述】:
我在数据库中有一个文本字段,其中包含 python json.dumps(list_instance) 操作的结果。因此,内部字段具有u' 前缀,并破坏了浏览器的JSON.parse() 功能。
JSON 字符串的一个例子是
"density": "{u'Penobscot': 40.75222856500098, u'Sagadahoc':
122.27083333333333, u'Lincoln': 67.97977755308392, u'Kennebec':
123.12237174095878, u'Waldo': 48.02117802779616, u'Cumberland':
288.9285325791363, u'Piscataquis': 3.9373586457405247, u'Hancock':
30.698239582715903, u'Washington': 12.368718341168325, u'Aroostook':
10.827378163074039, u'York': 183.47612497543722, u'Franklin':
16.89330963710371, u'Oxford': 25.171240748402518, u'Somerset':
12.425648288323485, u'Knox': 108.48302300109529, u'Androscoggin':
208.75502815768303}"
我想做的是用'(单引号)替换那些出现的u'。我试过了
function renderValues(data){
var pop = JSON.parse(data.density.replace(/u'/g, "'"));
}
但我总是收到unexpected token ' 异常。由于许多可能的关键字段可能包含u,因此仅删除该字符是不可行的。如何找到u' 的所有实例并替换为' 而不会出现异常?
【问题讨论】:
-
你是不是错过了 JOSN 字符串中最外层的
{ and }? -
@anubhava,不。这是来自 Django 模型的序列化返回的示例。我没有做一个完整的数据转储,而是展示了一个整体数据格式的样本。
-
好吧,在这种情况下,当我用你的代码尝试上面的 JSON 字符串时没有错误。
-
@anubhava,你用什么浏览器检查的?我在 ubuntu 上使用 chrome 32。事实证明,用双引号替换单引号解决了这个问题。
-
我在chrome上测试过,也可以生成jsfiddle。
标签: javascript python regex json