如何在阅读JSON时转义字符

时间:2010-12-19 19:50:14

标签: python json freebase mql

我需要写出这个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 :(得分: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"]

请注意,您遗漏了我添加的对象上的括号。

答案 1 :(得分:0)

你想要像

这样的东西
result["\/common\/topic\/weblink"][0].url

(我认为)

答案 2 :(得分:0)

尝试

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