首页 > 解决方案 > 如何在 Notepad++ 中为使用 Python 保存的 JSON 正确解析 JSON?

问题描述

我有一个dict保存为JSONPython,如下面的代码所示。

import json
# https://intellipaat.com/blog/tutorial/python-tutorial/python-json/
person_dict = {
  "name": "xxxx",
  "age": 30,
  "married": True,
  "divorced": False,
  "children": ("Ann","Billy"),
  "pets": None,
  "cars": [
    {"model": "BMW 230", "mpg": 27.5},
    {"model": "Ford Edge", "mpg": 24.1}
  ]
}


tt_json=json.dumps(person_dict)
with open ('data.json', 'w') as f:
  json.dump (tt_json, f)

然后,我想查看data.jsonin Notepad++。但是,使用插件JavaScript Map ParserJSON Viewer,JSON 呈现如下

在此处输入图像描述

然而,我希望插件JavaScript Map ParserJSON Viewer如下呈现 JSON。

在此处输入图像描述

看来,问题是由于用 Python 保存的 JSON 用双引号括起来"{ ... }"

"\"\\n{\\n  \\\"name\\\": \\\"xxxx\\\",\\n  \\\"age\\\": 30,\\n  \\\"married\\\": True,\\n  \\\"divorced\\\": False,\\n  \\\"children\\\": (\\\"Ann\\\",\\\"Billy\\\"),\\n  \\\"pets\\\": None,\\n  \\\"cars\\\": [\\n    {\\\"model\\\": \\\"BMW 230\\\", \\\"mpg\\\": 27.5},\\n    {\\\"model\\\": \\\"Ford Edge\\\", \\\"mpg\\\": 24.1}\\n  ]\\n}\\n\""

我可以知道如何在 Notepad++ 中或通过调整 JSON 在 Python 中的保存方式来解决此问题。

注意,这个 JSON 会保存在 Python 中,之后需要在 Notepad++ 中进行一些手动修改,然后在 Python 中重新打开。

ps 感谢venky。使用建议的解决方案,JSON 在 Notepad++ 中呈现为单个衬里

在此处输入图像描述

但是,可以使用 JSTool 使用以下设置来美化 JSON:

在此处输入图像描述

这将呈现如下 JSON: 在此处输入图像描述

标签: pythonjsonnotepad++

解决方案


您正在将字典转换为 JSON,然后使用JSON.dump两次再次转换为 JSON。只需在写入文件时使用一次。

import json
person_dict = {
  "name": "xxxx",
  "age": 30,
  "married": True,
  "divorced": False,
  "children": ("Ann","Billy"),
  "pets": None,
  "cars": [
    {"model": "BMW 230", "mpg": 27.5},
    {"model": "Ford Edge", "mpg": 24.1}
  ]
}

with open ('data.json', 'w') as f:
    json.dump(person_dict, f)

在此处输入图像描述


推荐阅读