python如何将每一行写成一个文件

我有一个 5 行长的 JSON 文件。我想将每一行写入一个单独的文件,即line1写入file1,line2到file2等


现在,我正在尝试将文件写入文件,但数据在一行中且无序,并且在写入文件的每个键和值之前都有一个奇怪的'u'。


import json


with open("test1.json") as f:

    with open("1.json","w") as o:

        lines = f.readline()

        for line in lines:

            y =  json.loads(line)

            print(y)

            json.dump(y,o)


慕运维8079593
浏览 268回答 2
2回答

蝴蝶刀刀

 linecount = 0    with open("test1.json") as f:        lines = f.readline()        for line in lines:            linecount = linecount + 1            with open(str(linecount)+".json","w") as o:                y =  json.loads(line)                print(y)                o.writelines(y)更新:添加了@tripleee 建议fp = open("test1.json",'r')for i, line in enumerate(fp):    with open(str(i)+".json","w") as o:        y =  json.loads(line)        print(y)        o.writelines(y)您的代码中的一切看起来都很好,除了这一行with open("1.json","w") as o: 更改这一行以为每一行创建新文件逻辑是 - 计算行数,使用 linecount.json 创建文件并转储 json

PIPIONE

最有效的方法是:with open('test1.json').readlines() as json_data:  # readlines returns a list containing each line as seperate items    for i in range(len(json_data)):  # For loop allows this to work with any number of lines        file = open(f'{str(i+1)}.json', 'w')  # Same as '{str(i+1)}.json'.format() or str(i+1)+'.json'        file.write(json_data[i])        file.close()        # print(json.loads(json_data[i]) # Uncomment if you want to print the content of each line这允许您使用任意数量的行 - 为您动态命名输出文件。u字符串前面的(如)u'string'表示 unicode 字符串。现在这是不推荐使用的 Python 语言的包含 - 默认字符串类型是 unicode。它现在只在 python 3 中与 python 2 兼容。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python