如何将带有变音符号的String转换回JSON

时间:2012-08-15 21:57:11

标签: python json string decode encode

我有这个JSON Python字符串:

linklist = str('
{
   "Download":{
   "Test": "http://www.test.org",
   u"K\xf6ter": "http://www.koeter.de"}
}'
)

我想用:

myJson= json.loads(linklist)

但是我遇到了问题,因为JSON字符串中有一个德语变音符号

对此字符串进行编码/解码的最佳方法是什么,以便使用simplejson将字符串转换为有效的JSON对象

嘿,伙计们这就是我想在我的代码中做的事情:

JSON:links.json

{
 "Download":{
    "Link1ä":"http://www.link1.de/test",
    "Link2ö":"http://www.link2.de/test/cool",
    "Link3ü":"http://www.link3.de/test/foo/bar",
    "Link4ü":{"Link5ü":"http://www.link5.de/test"}
}
}

Python文件:

linksFile = open('links.json', 'r')
linksList = json.load(linksFile)

linksList 中,我想搜索测试并将其替换为即myTest

如何替换此JSON-Object linksList 所有字符串 - >测试 - > MYTEST

非常感谢您的帮助。我试着在JSON对象上进行替换,并且对于变音符号没有问题:

linksFile = open('links.json', 'r')
linksList = json.load(linksFile)
dump = json.dumps(linksList)
linksList = json.loads(dump.replace('toReplace', 'replacement'))

1 个答案:

答案 0 :(得分:1)

如果该字符串是Köter,则问题在于编码,而不是json(de)序列化。看起来你正在使用cp1250。

尝试明确指定编码(默认值为UTF-8,显然不是你的情况):

myJson = json.loads(linklist, 'cp1250')