如何在读取JSON时转义字符

0 投票
3 回答
843 浏览
提问于 2025-04-16 08:45

我需要把这个JSON响应中的所有变量都写出来:

  "result": {
    "\/common\/topic\/weblink": [
      {
        "url": "http:\/\/www.boardgamegeek.com\/boardgame\/13", 
        "description": "BoardGameGeek"
      }
    ], 
    "id": "\/en\/settlers_of_catan"
  }

那么要获取id的话:

result.id

但是我该怎么获取“\/common\/topic\/weblink”的值呢?

3 个回答

0

试试看

result.__getattribute__("\/common\/topic\/weblink")[0].url
2

"\/common\/topic\/weblink" 这个字符串会变成 /common/topic/weblink。任何访问解码后内容的API都应该使用这个解码后的数据;转义只是JSON编码的一部分。

使用Python自带的标准JSON模块,这样做是没问题的。我强烈建议你使用这个模块,而不是第三方的,除非你有非常强的理由去选择其他的:

import json

json_data = r"""
{
  "result": {
    "\/common\/topic\/weblink": [
      {
        "url": "http:\/\/www.boardgamegeek.com\/boardgame\/13",
        "description": "BoardGameGeek"
      }
    ],
    "id": "\/en\/settlers_of_catan"
  }
}"""

data = json.loads(json_data)
print data["result"]["/common/topic/weblink"]

注意你没有加上对象的外括号,我已经把它加上了。

0

你想要的东西大概是这样的

result["\/common\/topic\/weblink"][0].url

(我觉得是这样)

撰写回答