在for循环中打开多个json文件

时间:2019-10-15 13:51:53

标签: python json

我有一些代码可以保存json文件并将其打印到屏幕上。我正在尝试找到遍历文件目录的最佳方法,一个接一个地打印一个文件,但是我收到“ [Errno 13] Permission Denied”错误。

目前,我正在执行以下操作:

json_path = 'MYPATH'
json_files = [f for f in os.listdir(json_path) if f.endswith('.json')]

for jf in json_files:
    with open (os.path.join(json_path)) as my_jf:
        json_text = json.load(my_jf)
        print(json_text)

我确保路径中的文件夹未在其他位置打开,并且可以访问它。如果有更简单的方法可以实现这一点,我将不胜感激。

3 个答案:

答案 0 :(得分:0)

您并不是真正打开文件,而是在打开文件所在的路径。 您可以尝试更改:

with open (os.path.join(json_files)) as my_jf:

答案 1 :(得分:0)

我偶然发现了一个答案。如果我在目录中创建文本文件列表,则json.load请求似乎有效:

my files = ['file1.txt', 'file2.txt']

for file in myfiles:
    with open(file) as json_file:
    jsonconvo = json.load(json_file)
    print(jsonconvo)

我不确定是否一定要解决实际问题,但这似乎是一个合理的解决方法。

答案 2 :(得分:0)

看起来您只是忘记在open()语句中实际包含文件名:

with open(os.path.join(json_path, jf)) as my_jf: