【问题标题】:Split one big line in newlines issue在换行问题中拆分一大行
【发布时间】:2022-07-08 01:28:19
【问题描述】:

又是我。 我有这个很长的大 .txt 文件,可悲的是一个大文件(显然是 json 输出,但我想没关系)。

编辑:它是一个 JSON 数组。对不起,我的错。

看起来像这样:

[{"completed":"XXXXXXXXX","flow":"XXXXXX","process":"XXXXX","step":"XXXXXXX","thingname":"INEEDTHISFORLATER"},{"completed":"XXXXXXXXXX","flow":"XXXXXXXX","process":"XXXXXXX","step":"XXXXXXXX","thingname":"INEEDTHISFORLATER"}]

我需要像这样分隔行,以便输出看起来像这样:

{"completed":"XXXXXXXXXX","flow":"XXXXXX","process":"XXXXX","step":"XXXXXXX","thingname":"INEEDTHISFORLATER"}
{"completed":"XXXXXXXXXX","flow":"XXXXXXXX","process":"XXXXXXX","step":"XXXXXXXX","thingname":"INEEDTHISFORLATER"}

我的代码如下所示:

def makenewlines():
    with open('TEMPFILE.txt') as infile:
        contents = infile.read()
        contents = contents.replace('},","', '\n')
    infile.close()

我似乎找不到它的问题。 我的意思是它执行没有任何错误,但它没有换行。

因为在那之后我有另一个函数应该过滤掉除“INEEDTHISFORLATER”之外的所有内容。

我想我有一个解决方案,但也许你们有一个快速的方法来实现这个,同时制作换行符。

感谢您的帮助!

【问题讨论】:

  • 我强烈建议您使用 Python 程序将传入的 JSON 读取为 JSON,然后遍历 JSON,一次输出一行。
  • 它必须被解释为 JSON 吗?我对此没有太多了解,所以我想我可以阻止使用 JSON 解释并将其视为 .txt 文件。
  • 原生python中有一个包叫jsonsee this

标签: python-3.x


【解决方案1】:

您可以使用json packge 处理您的案件

import json

def readFile(file):
    with open(file, "r") as infile:
        contents = infile.read()
    return contents

def parseJson(string):
    return json.loads(string)

s = readFile('TEMPFILE.txt')

o = parseJson(s)
## return a list of dict

然后根据您想要对从 `json` 解析的对象执行的操作,您可以:

用换行符覆盖TEMPFILE.txt中的原始内容:

def writeFile(lines, file):
    with open(file, "w") as outfile:
        outfile.write(lines.join("\n"))
writeFile(o, 'TEMPFILE.txt')

print()出来:

print(*o, sep="\n")
## {'completed': 'XXXXXXXXX', 'flow': 'XXXXXX', 'process': 'XXXXX', 'step': 'XXXXXXX', 'thingname': 'INEEDTHISFORLATER'}
## {'completed': 'XXXXXXXXXX', 'flow': 'XXXXXXXX', 'process': 'XXXXXXX', 'step': 'XXXXXXXX', 'thingname': 'INEEDTHISFORLATER'}

或者对数据做任何你想做的事情:

for item in o:
    print(item['completed'])
## XXXXXXXXX
## XXXXXXXXXX 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-10
    • 2021-09-01
    • 1970-01-01
    • 2011-12-05
    • 1970-01-01
    • 1970-01-01
    • 2016-01-23
    • 1970-01-01
    相关资源
    最近更新 更多