![]() |
完美的生姜 · sed中的非贪婪(不情愿)正则表达式匹配?- ...· 11 月前 · |
![]() |
非常酷的莴苣 · ABAP开发基础知识:5) ...· 1 年前 · |
![]() |
细心的荔枝 · SubversionEdge安装及ldap接 ...· 1 年前 · |
![]() |
聪明的电影票 · excel表格禁止复制粘贴用vBA实现-掘金· 1 年前 · |
![]() |
有胆有识的牛肉面 · vba textbox enter key ...· 1 年前 · |
我有多个(1000+) JSON文件,每个文件都包含一个JSON数组。我想把所有这些文件合并成一个文件。
我想出了以下内容,它读取这些文件中的每一个,并创建一个包含所有内容的新对象。然后将这个新对象写入一个新文件中。
这种方法有效吗?有没有更好的方法来做到这一点?
head = []
with open("result.json", "w") as outfile:
for f in file_list:
with open(f, 'rb') as infile:
file_data = json.load(infile)
head += file_data
json.dump(head, outfile)
发布于 2015-06-23 00:54:19
head
应该有一个类似于
merged_files
的名称,而且您不应该使用
f
作为迭代器变量。像
json_file
这样的东西会更好。
发布于 2016-07-09 13:55:32
这在本质上是 阿列克斯兰评论 阐明的:
解析和序列化JSON并不是免费的,所以您可能希望避免它。我认为您可以只输出
"["
,第一个文件,
","
,第二个文件等等,
"]"
并将其称为一天。如果所有输入都是有效的JSON,除非我大错特错,否则这也应该是有效的JSON。
在代码中,版本1:
def cat_json(outfile, infiles):
file(outfile, "w")\
.write("[%s]" % (",".join([mangle(file(f).read()) for f in infiles])))
def mangle(s):
return s.strip()[1:-1]
第2版:
def cat_json(output_filename, input_filenames):
with file(output_filename, "w") as outfile:
first = True
for infile_name in input_filenames:
with file(infile_name) as infile:
if first:
![]() |
聪明的电影票 · excel表格禁止复制粘贴用vBA实现-掘金 1 年前 |