<p>此代码中有几点需要改进:</p>
<ul>
你应该以更“程序化”的方式考虑:</P>
<p>如果声明一个包含要访问的json文件名称的列表,如下所示:</p>
<pre><code>files_names = ["1","2","3","4","5","6"]
</code></pre>
<p>然后,您可以执行以下操作:</p>
<pre><code>files_names = ["1","2","3","4","5","6"]
data = ""
for file_name in files_names :
with open(file_name+".json" ,"r") as file_handle :
temp_data = file_handle.read()
data = data + temp_data
with open ('merged.json', 'a') as file_handle :
file_handle.write(data)
</code></pre>
<p>它更简洁、更具python风格,并且如果您需要7个json输入文件,就可以轻松地进行修改</p>
</li>
<li><p>如果您的文件总是1,2,3,4,那么您也可以这样做for循环迭代:知道您想要的最高json文件号</p>
<pre><code>max_file_name = 6
for file_name in range(1,max_file_name):#i added 1 as first arg of
#range, assuming your files naming start at 1 and not at 0
str(file_name) + ".json"
</code></pre>
</li>
<li><p>为了确保Json是有效的Json,可以使用Json标准库。不过这需要更多的时间,因为文件将被解析,而不是直接转储到另一个文件中,但是如果您没有100000个文件要合并,并且您不确定在第一个plase中创建json文件的代码是否有效,那么您将看不到区别</p>
<p>要想使用它,就去做吧</p>
<pre><code>import json
max_file_name = 6
data = ""
for file_name in range(max_file_name):
with open(str(file_name) + ".json" ,"r") as file_handle :
temp_data = json.load(file_handle )
data = {**data , **temp_data}
# ** is used to "unload" every key value in a dict at runtime,
# as if you provided them one by one separated by comas :
# data["key1"],data["key2"]...
# doing so for both json objects and puttin them
# into a dictionnay is effectively just like merging them.
with open ('merged.json', 'a') as file_handle :
json.dump(data,file_handle)
</code></pre>
</li>
</ul>