如何读取.json文件并写入新文件,使用Python插入换行符

如何读取.json文件并写入新文件,使用Python插入换行符,python,json,Python,Json,因此,我的脚本需要处理一个.json文件。问题是,我的脚本使用LineReader在输入文件中移动,而我拥有的json文件都在一条巨大的单行线上。查看该文件,我不确定我能做些什么来找到创建新行的位置。有人知道我该怎么做吗?对于我的项目来说,获取这个.json文件(下面的示例一),将其正确格式化(或者至少在新行上),然后将其作为脚本的输入读取,这一点非常重要。提前谢谢 示例1,.json文件的当前外观: {"nodes":[{"nodeID":"119927","text":"Yes, it's

因此,我的脚本需要处理一个.json文件。问题是,我的脚本使用LineReader在输入文件中移动,而我拥有的json文件都在一条巨大的单行线上。查看该文件,我不确定我能做些什么来找到创建新行的位置。有人知道我该怎么做吗?对于我的项目来说,获取这个.json文件(下面的示例一),将其正确格式化(或者至少在新行上),然后将其作为脚本的输入读取,这一点非常重要。提前谢谢

示例1,.json文件的当前外观:

{"nodes":[{"nodeID":"119927","text":"Yes, it's annoying and cumbersome to separate your rubbish properly all the time.","type":"I","timestamp":"2015-12-14 12:09:13"},{"nodeID":"119928","text":"Three different bin bags stink away in the kitchen and have to be sorted into different wheelie bins.","type":"I","timestamp":"2015-12-14 12:09:14"},{"nodeID":"119929","text":"But still Germany produces way too much rubbish","type":"I","timestamp":"2015-12-14 12:09:14"},{"nodeID":"119930","text":"and too many resources are lost when what actually should be separated and recycled is burnt.","type":"I","timestamp":"2015-12-14 12:09:14"},{"nodeID":"119931","text":"We Berliners should take the chance and become pioneers in waste separation!","type":"I","timestamp":"2015-12-14 12:09:14"},{"nodeID":"119932","text":"Default Conflict","type":"CA","timestamp":"2015-12-14 12:09:14"},{"nodeID":"119933","text":"Default Inference","type":"RA","timestamp":"2015-12-14 12:09:14"},{"nodeID":"119934","text":"Default Conflict","type":"CA","timestamp":"2015-12-14 12:09:14"}],"edges":[{"edgeID":"160906","fromID":"119927","toID":"119932","formEdgeID":null},{"edgeID":"160907","fromID":"119932","toID":"119931","formEdgeID":null},{"edgeID":"160908","fromID":"119928","toID":"119933","formEdgeID":null},{"edgeID":"160909","fromID":"119933","toID":"119927","formEdgeID":null},{"edgeID":"160910","fromID":"119929","toID":"119934","formEdgeID":null},{"edgeID":"160911","fromID":"119934","toID":"119932","formEdgeID":null},{"edgeID":"160912","fromID":"119930","toID":"119934","formEdgeID":null}],"locutions":[]}
示例2,我的脚本可以正常运行的格式:

{
    "nodes":[
        {
            "nodeID":20,
            "text":"Yes, it's annoying and cumbersome to separate your rubbish properly all the time.",
            "type":"I"
        },
        {
            "nodeID":21,
            "text":"Three different bin bags stink away in the kitchen and have to be sorted into different wheelie bins.",
            "type":"I"
        },
        {
            "nodeID":22,
            "text":"But still Germany produces way too much rubbish",
            "type":"I"
        },
        {
            "nodeID":23,
            "text":"and too many resources are lost when what actually should be separated and recycled is burnt.",
            "type":"I"
        },
        {
            "nodeID":24,
            "text":"We Berliners should take the chance and become pioneers in waste separation!",
            "type":"I"
        },
        {
            "nodeID":40,
            "text":"Default Conflict",
            "type":"CA"
        },
        {
            "nodeID":41,
            "text":"Default Inference",
            "type":"RA"
        },
        {
            "nodeID":42,
            "text":"Default Conflict",
            "type":"CA"
        }
    ],
    "edges":[
        {
            "fromID":20,
            "toID":40
        },
        {
            "fromID":40,
            "toID":24
        },
        {
            "fromID":21,
            "toID":41
        },
        {
            "fromID":41,
            "toID":20
        },
        {
            "fromID":22,
            "toID":42
        },
        {
            "fromID":42,
            "toID":40
        },
        {
            "fromID":23,
            "toID":42
        }
    ],
    "schemefulfillments":[

  ],
    "participants":[

  ],
    "locutions":[

   ]
}
非常感谢您的帮助。在我的项目结束之前,我没有时间完全重写我的整个程序,所以必须这样做,或者类似的方法,不需要对我的原始脚本进行重大重写。

试试看

输入:

导入json
compactJSON=“”{”节点“:[{”节点“:“119927”,“文本“:“是的,一直正确地分离垃圾很烦人和麻烦。”,“类型“:“我”,“时间戳“:“2015-12-14 12:09:13”},{”节点“:“119928”,“文本“:“三个不同的垃圾袋在厨房里臭气熏天,必须分类到不同的轮子垃圾箱。”,“类型“:“我”,“时间戳”:”2015-12-14 12:09:14“},{“nodeID”:“119929”,“text”:“但德国仍然制造了太多垃圾”,“type”:“I”,“timestamp”:“2015-12-14 12:09:14”},{“nodeID”:“119930”,“text”:“当实际应该分离和回收的东西被烧毁时,太多的资源被浪费了。”,“type”:“I”,“timestamp”:“2015-12-14 12:09:14”},{“nodeID”:“119931”,“text”:我们柏林人应该抓住这个机会,成为废物分类的先驱!,“类型”:“I”,“时间戳”:“2015-12-14 12:09:14”},{“nodeID”:“119932”,“文本”:“默认冲突”,“类型”:“CA”,“时间戳”:“2015-12-14 12:09:14”},{“nodeID”:“119933”,“文本”:“默认推理”,“类型”:“RA”,“时间戳”:“2015-12-14 12:09:14”},{“nodeID”:“119934”,“文本”:默认冲突,“类型”:“CA”,“时间戳”:“2015-12-14 12:09:14”}],“边缘”:[{“edgeID”:“160906”,“fromID”:“119927”,“toID”:“119932”,“formEdgeID”:null},{“edgeID”:“160907”,“fromID”:“119932”,“toID”:“119931”,“formEdgeID”:“null},{“edgeID”:“119928”,“fromID”:“119933”,“formEdgeID”:“160909”,“fromID”:“119933”,“toID”:“119937”:”formEdgeID:null},{“edgeID”:“160910”,“fromID”:“119929”,“toID”:“119934”,“formEdgeID”:null},{“edgeID”:“160911”,“fromID”:“119934”,“toID”:“119934”,“toID”:“119932”,“formEdgeID”:null},{“edgeID”:“160912”,“fromID”:“119930”,“toID”:“119934”,“formEdgeID”:“null},”,“roctions”:[]}
dictionary=json.loads(compactJSON)
prettyJSON=json.dumps(字典,缩进=4,分隔符=(',',':'))
打印(prettyJSON)
输出:

{
“边缘”:[
{
“fromID”:“119927”,
“edgeID”:“160906”,
“formEdgeID”:空,
“toID”:“119932”
},
{
“fromID”:“119932”,
“edgeID”:“160907”,
“formEdgeID”:空,
“toID”:“119931”
},
{
“fromID”:“119928”,
“edgeID”:“160908”,
“formEdgeID”:空,
“toID”:“119933”
},
{
“fromID”:“119933”,
“edgeID”:“160909”,
“formEdgeID”:空,
“toID”:“119927”
},
{
“fromID”:“119929”,
“edgeID”:“160910”,
“formEdgeID”:空,
“toID”:“119934”
},
{
“fromID”:“119934”,
“edgeID”:“160911”,
“formEdgeID”:空,
“toID”:“119932”
},
{
“fromID”:“119930”,
“edgeID”:“160912”,
“formEdgeID”:空,
“toID”:“119934”
}
],
“语言”:[],
“节点”:[
{
“时间戳”:“2015-12-1412:09:13”,
“nodeID”:“119927”,
“文本”:“是的,一直正确地把垃圾分开是很烦人和麻烦的。”,
“类型”:“I”
},
{
“时间戳”:“2015-12-14 12:09:14”,
“nodeID”:“119928”,
“文本”:“三个不同的垃圾袋在厨房里发臭,必须分类到不同的轮转垃圾箱。”,
“类型”:“I”
},
{
“时间戳”:“2015-12-14 12:09:14”,
“nodeID”:“119929”,
“文本”:“但德国仍然制造了太多垃圾”,
“类型”:“I”
},
{
“时间戳”:“2015-12-14 12:09:14”,
“nodeID”:“119930”,
“文本”:“当实际应该分离和回收的东西被烧掉时,会损失太多的资源。”,
“类型”:“I”
},
{
“时间戳”:“2015-12-14 12:09:14”,
“nodeID”:“119931”,
“文本”:“我们柏林人应该抓住机会,成为废物分类的先驱!”,
“类型”:“I”
},
{
“时间戳”:“2015-12-14 12:09:14”,
“nodeID”:“119932”,
“文本”:“默认冲突”,
“类型”:“CA”
},
{
“时间戳”:“2015-12-14 12:09:14”,
“nodeID”:“119933”,
“文本”:“默认推断”,
“类型”:“RA”
},
{
“时间戳”:“2015-12-14 12:09:14”,
“nodeID”:“119934”,
“文本”:“默认冲突”,
“类型”:“CA”
}
]
}
试试这个

//从目录中读取Json文件

    JSONParser parser = new JSONParser();
    Object obj = parser.parse(new FileReader("D:\\FilesDemo\\abc.json"));
    JSONObject jsonObject = (JSONObject) obj;
    System.out.println(jsonObject);
    JSONArray employeeList = new JSONArray();
    employeeList.add(obj);

    // Write JSON file
    try (FileWriter file = new FileWriter("D:\\FilesDemo\\employee.json")) {
        file.write(employeeList.toJSONString());
        file.flush();

    } catch (IOException e) {
        e.printStackTrace();
    }

请发布您当前使用的代码,以便我们发现任何问题;也许你应该使用一个合适的解析器,而不是你自己的?如果你的脚本被没有打印出来的有效JSON阻塞了,那么它就出了问题,你需要修复它,而不是预打印它。为什么您的脚本不使用JSON解析器来解析JSON?仅供参考,以防万一