2 回答
TA贡献1801条经验 获得超8个赞
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
TA贡献1829条经验 获得超9个赞
最有效的方法是:
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 兼容。
添加回答
举报