Django mySQL CSV导入中的未知列

Django mySQL CSV导入中的未知列,django,mysql,django-models,Django,Mysql,Django Models,我正在尝试将一个小的CSV文件导入我的django程序。我正在使用SQL,下面是我目前所拥有的。CSV文件本身有一个名为Customer的Column1,我试图获取该信息并将其分配给模型字段名“client_name”。当我运行此查询时遇到的问题是,我一直在字段列表错误中获取未知列“customer”,但不确定如何修复它 LOAD DATA LOCAL INFILE 'home/steve/Desktop/ClientListing_2.csv' INTO TABLE clients_clien

我正在尝试将一个小的CSV文件导入我的django程序。我正在使用SQL,下面是我目前所拥有的。CSV文件本身有一个名为Customer的Column1,我试图获取该信息并将其分配给模型字段名“client_name”。当我运行此查询时遇到的问题是,我一直在字段列表错误中获取未知列“customer”,但不确定如何修复它

LOAD DATA LOCAL INFILE 'home/steve/Desktop/ClientListing_2.csv' INTO TABLE clients_clients
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\n'
SET Customer = client_name;
有什么建议吗


谢谢大家。

我在这里猜了一点,但听起来好像您有一个带有标题行的CSV,并且您希望将该CSV的第一列加载到表名称clients\u clients的client\u name列中

是这样吗

如果是这样,这应该是可行的:

LOAD DATA LOCAL INFILE 'home/steve/Desktop/ClientListing_2.csv' 
INTO TABLE clients_clients 
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(client_name);
我在其周围保留一个空的(即以“通行证”终止)管理,一个zip文件,每当我需要一次性文件时,我都可以将其分解。如果您正在使用MySQL,请使用Django方式:

from django.core.management import BaseCommand
import csv
from clients.models import Client
class Command(BaseCommand):
    def handle(self,*args,**options):
        for row in csv.reader(open('path/to/ClientListing_2.csv', 'rb'), delimiter=',', quotechar='"'):
            if row[0] == 'Customer': 
                continue
            Client.objects.get_or_create(client_name = row[0])

保存它,运行它,删除它。此方法保证正确生成Django ID。有更聪明的方法可以做到这一点(保证唯一性是个好主意!),但这是核心思想。

似乎您可能试图以不同的顺序加载列,也许只是列的一个子集。如果是,正确的语法是:

LOAD DATA LOCAL INFILE 'home/steve/Desktop/ClientListing_2.csv'
INTO TABLE clients_clients
(client_name, ...)
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\n';

换句话说,使用列列表来填充部分列或更改csv文件的顺序。

我认为这根本不是正确的语法。MySQ的加载数据没有将列标签与列关联的语法;基本上都是定位的。您是否考虑过编写一个简单的django管理命令来导入CSV文件?@Elf目前,我只需要导入此文件一次,然后从现在起我们将使用此系统。您可以看到,字段列表只能在字段/行以…结尾后出现。。。任何未包含的字段都将被删除。或者,您可以包括所有字段,而不列出这些字段。这里有一个很好的答案:。