我有多个(400)json文件,其中包含我想要读取的目录中的dict并附加到列表中。我已经尝试循环遍历目录中的所有文件,如下所示:
path_to_jsonfiles = 'TripAdvisorHotels'
alldicts = []
for file in os.listdir(path_to_jsonfiles):
with open(file,'r') as fi:
dict = json.load(fi)
alldicts.append(dict)
我一直收到以下错误:
FileNotFoundError: [Errno 2] No such file or directory
但是,当我查看目录中的文件时,它会为我提供所有正确的文件。
for file in os.listdir(path_to_jsonfiles):
print(file)
只需打开其中一个文件名即可。
with open('AWEO-q_GiWls5-O-PzbM.json','r') as fi:
data = json.load(fi)
在循环中它出错了吗?
答案 0 :(得分:2)
您的代码有两个错误:
1. file
只是文件名。您必须编写完整的文件路径(包括其文件夹)。
2.你必须在循环中使用append
。
总而言之,这应该有效:
alldicts = []
for file in os.listdir(path_to_jsonfiles):
full_filename = "%s/%s" % (path_to_jsonfiles, file)
with open(full_filename,'r') as fi:
dict = json.load(fi)
alldicts.append(dict)