在Django/Python中高效地循环CSV文件并针对非常大的数据库表进行验证

在Django/Python中高效地循环CSV文件并针对非常大的数据库表进行验证,python,django,csv,Python,Django,Csv,我正在做一个项目,上传一个CSV文件,然后循环遍历每一行,枚举每一行中的值。如果字段有一个条目,我需要根据一个大的值表来验证它 目前我如何处理这个问题,是从我需要的每个表(主键)执行一个查询。因此,我将引入300k主键,并根据该列表进行验证。这比每次用一个.get请求访问数据库要快得多 我的问题是——这能更有效地做到吗 我的代码示例: large1_list = list(large1.objects.values_list('pk', flat=True)) large2_list = lis

我正在做一个项目,上传一个CSV文件,然后循环遍历每一行,枚举每一行中的值。如果字段有一个条目,我需要根据一个大的值表来验证它

目前我如何处理这个问题,是从我需要的每个表(主键)执行一个查询。因此,我将引入300k主键,并根据该列表进行验证。这比每次用一个.get请求访问数据库要快得多

我的问题是——这能更有效地做到吗

我的代码示例:

large1_list = list(large1.objects.values_list('pk', flat=True))
large2_list = list(large2.objects.values_list('pk', flat=True))

csv_file = request.FILES['csv_file']
csv_parsed = csv.reader(codecs.iterdecode(csv_file, 'utf-8'), delimiter=',')

for fields in csv:
    for i, x in enumerate(fields):
        if i == 0:
            if x not in large1_list:
                   return blah blah blah
等等。我在想必须有一个更有效的方法来做到这一点。。。但我认为这比每次都达到一分贝要好