Python Json转CSV文件权限错误13

Python Converting JsonL to CSV File Permission Error 13

我目前正在编写一个将 jsonl 格式转换为 csv 格式的脚本。但是,在 运行 visual studio 代码终端上的代码中,出现以下错误:

Traceback (most recent call last):
  File "C:\Users\Natthanon\Documents\Coding 101\Python\test.py", line 24, in <module>
    with open(r'C:\Users\Natthanon\Documents\Coding 101\Python\CSV', 'a' , newline='') as f:
PermissionError: [Errno 13] Permission denied: 'C:\Users\Natthanon\Documents\Coding 101\Python\CSV'

下面是我的 python 脚本。如果有人知道为什么我会收到如上所示的权限错误,请告诉我是否有任何解决方案。我是 Python 的新手,我希望有经验的人能够帮助我解决这个问题。谢谢!

import glob
import json
import csv

import time


start = time.time()
#import pandas as pd
from flatten_json import flatten

#Path of jsonl file
File_path = (r'C:\Users\Natthanon\Documents\Coding 101\Python\JSONL')
#reading all jsonl files
files = [f for f in glob.glob( File_path + "**/*.jsonl", recursive=True)]
i=0
for f in files:
    with open(f, 'r') as F:
        for line in F:
#flatten json files 
            data = json.loads(line)
            data_1=flatten(data)
#creating csv files  
            with open(r'C:\Users\Natthanon\Documents\Coding 101\Python\CSV', 'a' , newline='') as f:
                thewriter = csv.writer(f)
#headers should be the Key values from json files that make Coulmn header
                thewriter.writerow([data_1['header1'],data_1['header2']])

似乎是 PermissionError: [Errno 13] in python 的重复。

您试图做的是将目录作为文件打开,这将失败。 我猜您可以尝试类似的操作:为 JSONL 上的每个 .jsonl 在 CSV 文件夹上创建一个新的 csv。

import glob
import json
import csv

import time


start = time.time()
#import pandas as pd
from flatten_json import flatten

#Path of jsonl file
File_path = (r'C:\Users\Natthanon\Documents\Coding 101\Python\JSONL')
#reading all jsonl files
files = [f for f in glob.glob( File_path + "**/*.jsonl", recursive=True)]
i=0
for f in files:
    with open(f, 'r') as F:
        for line in F:
#flatten json files 
            data = json.loads(line)
            data_1=flatten(data)
#creating csv files  
            with open(r'C:\Users\Natthanon\Documents\Coding 101\Python\CSV\' + f.split("\")[-1] +".csv", 'a' , newline='') as csv_file:
                thewriter = csv.writer(csv_file)
#headers should be the Key values from json files that make Coulmn header
                thewriter.writerow([data_1['header1'],data_1['header2']])

在线

 with open(r'C:\Users\Natthanon\Documents\Coding 101\Python\CSV\' + f.split("\")[-1] +".csv", 'a' , newline='') as csv_file:

您正在使用 jsonl 文件的名称(拆分是为了摆脱所有路径,只是为了获取文件名)并在“CSV”文件夹上创建一个扩展名为 .csv 的配对文件。