Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django CSV文件-数据库上载错误_Django - Fatal编程技术网

Django CSV文件-数据库上载错误

Django CSV文件-数据库上载错误,django,Django,我有一个CSV文件,我正在尝试将它们填充到sqlite数据库中。我没有错误消息,它工作得很好,但只加载文件的最后一行 MD= MD() database = options.get('database') filename = options.get('filename') dataReader = csv.reader(open(filename)) for row in dataReader:

我有一个CSV文件,我正在尝试将它们填充到sqlite数据库中。我没有错误消息,它工作得很好,但只加载文件的最后一行

MD= MD()
    database = options.get('database')
            filename = options.get('filename')
            dataReader = csv.reader(open(filename))
            for row in dataReader:
                if row[0] != 'ID':
                   bb= 1 if row[3] == 'YES' else 0
                   pro = 'YES' if row[4] == 'Pro' else 'NO'
                   MD.id = row[0]
                   MD.mol = row[1]
                   MD.phase = row[2]
                   MD.warning = black_box
                   MD.pro = pro
                   MD.status = Type.objects.get(description=row[5])
                   MD.name = row[6]
                   MD.stem = row[7]
                   MD.year = row[8]
                   MD.iname = row[9]
                   MD.iyear = row[10]

                   print row[1], row[2],row[3],row[4],row[5],row[6], row[0]
                   MD.save()

但是print语句打印CSV文件中的所有行。我不知道会发生什么。谢谢

您总是保存同一个对象。试试这个:

MD=MD()

... # The same here
for row in dataReader:
    if row[0] != 'ID':
        MD= MD()
        ... # The same here
        MD.id = row[0]
        MD.mol = row[1]
        ...
        MD.save()

您只需在
for
循环外部创建一个
MD
实例,然后在循环的每次迭代中保存到同一实例。如果要为每一行创建并保存新记录,则需要为每个迭代(文件的每一行)创建一个新的
MD()
实例。这就是为什么您只保存最后一行—您过度编写了您创建的现有实例。祝你好运。

你能举一个你正在使用的CSV文件的例子吗?