Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用记事本对不完整的.json文件(缺少括号)中的键进行排序++;还是Python?_Json_Python 3.x_Notepad++ - Fatal编程技术网

如何使用记事本对不完整的.json文件(缺少括号)中的键进行排序++;还是Python?

如何使用记事本对不完整的.json文件(缺少括号)中的键进行排序++;还是Python?,json,python-3.x,notepad++,Json,Python 3.x,Notepad++,我有不完整的.json文件,缺少括号, 但始终使用相同的五个键:“国家”、“国会大厦”、“货币”、“人口”、“产出” 这五个键也总是以随机顺序排列,如本例所示: "COUNTRY" : "Japan", "CAPITOL" : "Tokyo", "CURRENCY" : "Yen", "POPULATION" : "126 500 000", "OUTPUT" : "4 971 000 000 000", "CURRENC

我有不完整的.json文件,缺少括号, 但始终使用相同的五个键:
“国家”、“国会大厦”、“货币”、“人口”、“产出”

这五个键也总是以随机顺序排列,如本例所示:

      "COUNTRY" : "Japan",
      "CAPITOL" : "Tokyo",
      "CURRENCY" : "Yen",
      "POPULATION" : "126 500 000",
      "OUTPUT" : "4 971 000 000 000",

      "CURRENCY" : "USD",
      "CAPITOL" : "Washington, D.C.",
      "COUNTRY" : "USA",
      "OUTPUT" : "20 000 000 000 000",
      "POPULATION" : "328 000 000"
      ...
因此,我无法用记事本++或Python自动添加括号

有什么办法吗

我希望输出总是按相同的顺序,如“国家”、“国会大厦”、“货币”、“人口”、“输出”

下面是我要创建的输出示例:

      {"COUNTRY" : "Japan",
      "CAPITOL" : "Tokyo",
      "CURRENCY" : "Yen",
      "POPULATION" : "126 500 000",
      "OUTPUT" : "4 971 000 000 000"},

      {"COUNTRY" : "USA",
      "CAPITOL" : "Washington, D.C.",
      "CURRENCY" : "USD",
      "POPULATION" : "328 000 000",
      "OUTPUT" : "20 000 000 000 000"},
      ...

有什么建议吗?我的想法是对键进行排序,但可能还有另一种解决方案。

这可以在记事本++中使用奇怪的正则表达式来完成

  • Ctrl+H
  • 查找以下内容:
    (?:\G)\s*(?=[\s\s]*?(“国家:”[^“]+”)、\s(?=[\s]*(“国会:”[^“]+”)、\s(?=[\s\s]*(“货币:”[^“]+”)、\s(?=[\s\s]*(“人口:“[^“]+”)、\s(?=[\s\s]*”(“产出:”):[^++”)、\R+>
  • 替换为:
    {\n$1\n$2\n$3\n$4\n$5\n}\n
  • 检查匹配案例
  • 检查环绕
  • 检查正则表达式
  • 取消选中
    。匹配换行符
  • 全部替换

屏幕截图(之前):

屏幕截图(之后):


您需要以5行(或更多行,取决于空行)为单位读取文件,将每个块解析为一个字典,将其添加到列表中,最后将字典列表输出为JSON。如果我可以用Python解析JSON(双键,无括号),这听起来是个好主意。我会尝试,谢谢!