3

我有这个 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:链接.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"}
}
}

蟒蛇文件:

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

在此链接列表中,我想搜索测试并将其替换为即myTest

如何在此 JSON-Object链接列表中替换所有字符串 -> 测试 -> myTest

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

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

1 回答 1

1

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

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

myJson = json.loads(linklist, 'cp1250')
于 2012-08-15T23:20:28.830 回答