我试图遍历JSON文件,并将部分文件名保存在另一个JSON文件存储的列表中。当我在append()
之后print(list_of_files)
时,我会得到文件名的完整列表。然而,当我将其存储在JSON文件中时,我的列表上只有一个条目
这是我的密码:
all_json = '/mypath/...'
for name_of_file in all_json:
with open(name_of_file) as f:
json_files = json.load(f)
list_of_files = []
basename = os.path.basename(name_of_file)
name = basename[0:-9]
list_of_files.append(name)
print(list_of_files)
with open('orderOfSamples_600.json', 'w') as f:
json.dump(list_of_files, f, indent=4)
我错过了什么
如果您只想使用另一个列表中存储的部分文件名创建一个新列表,然后将其保存为JSON格式,那么您只需执行以下操作:
前面的答案非常有效。使用当前代码实现此目标的另一种方法是更改打开文件的方式。您正在使用
with open('orderOfSamples_600.json', 'w') as f
。当您用“w”打开文件时,它将用您放入的内容覆盖文件内容。您应该使用“a”进行追加,而不是覆盖with open('orderOfSamples_600.json', 'a') as f:
所以,总的来说您在for循环中定义了
list_of_files
,因此它在每次迭代中都被覆盖,这就是为什么它只包含上一次迭代中附加的1个元素为了避免这种情况,在循环外定义
list_of_files
相关问题 更多 >
编程相关推荐