如何转换csv文件,使其可以JSON序列化,反之亦然?

2024-09-28 21:49:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要通过在芹菜任务的网页上传一个csv文件来调用每行csv的api。但是我得到一个错误<InMemoryUploadedFile>不是JSON可序列化的

我想使用以下方法将文件转换为json:

json.dumps(unicode(self.get_form_kwargs().get('files')['uploaded_file'])) 

但它也不起作用

views.py中:

class FileUploadView(FormView):
    template_name = 'addFile.html'
    form_class = FileUploadForm

    @method_decorator(sales_spear_login_required)
    def dispatch(self, *args, **kwargs):
        return super(FileUploadView, self).dispatch(*args, **kwargs)

    def form_valid(self, form):
        file_det = self.get_form_kwargs().get('files')['uploaded_file']
        create_dialer_report_async(self.request.user.email, file_det, list_name, campaign_name)
        return render(self.request, self.template_name, {'form': form, 'report_generated': True})

services.py中:

def create_dialer_report_async(logged_user_email, file_det, list_name, campaign_name):
create_dialer_report.apply_async((logged_user_email, file_det, list_name, campaign_name))


def create_dialer_report(user_emails, file_det, list_name, campaign_name):
reader = csv.DictReader(file_det)
for row in reader:
     # calling api from each row

它应该是可用的csv文件对象中服务.py. 不过,我相信这是字符串在这里。你知道吗


Tags: csvnameselfreportformgetdefcreate
1条回答
网友
1楼 · 发布于 2024-09-28 21:49:34

像这样:

import csv
import json

csv_file = open('your_csv_file.csv', 'r')
json_file = open('your_json_file.json', 'w')

field_names = ("Your Field 1","Your Field 2","Your Field 3","Your Field 4", Your Field etc...)
reader = csv.DictReader(csv_file, field_names)

for row in reader:
    json.dump(row, json_file)
    jsonfile.write('\n')

希望这对你有所帮助。你知道吗

相关问题 更多 >