Парсинг csv с помощью pandas
пытаюсь добавить данные из CSV файла в DB django
Исполняемый код:
from django.core.management.base import BaseCommand
import pandas as pd
from ...models import Suppliers, Articles
def get_products():
tmp_data = pd.read_csv('C:/Users/Sirius_McLine/PycharmProjects/BrixoDoc/ImportCSV/articles.csv', sep=';')
products = [
Articles(
ExternalId=tmp_data.loc[row]['ART_ID'],
SupplierId=Suppliers.objects.get(id=tmp_data.loc[row]['SUP_NAME']),
AssemblyGroup=tmp_data.loc[row]['Assembly_Group'],
GenericArticle=tmp_data.loc[row]['Generic_Article'],
ArticleNumber=tmp_data.loc[row]['ART_NUM'],
Type=1,
GenericArticleNumber=8,
)
for row in tmp_data
]
Articles.objects.bulk_create(products)
def clear_data():
"""
Очистить все записи в таблице Product
"""
Articles.objects.all().delete()
class Command(BaseCommand):
def handle(self, *args, **options):
clear_data()
get_products()
print("---------------------------------------PRODUCTS WAS ADDED----------------------------------------------")
Файл CSV:
ART_ID;ART_NUM;GEN_ART_NO;SUP_NAME;Assembly_Group;Generic_Article;ATTRIBUTES
4937#FL1105;FL1105;1537;FIT;Тормозная система;Комплект тормозных башмаков, барабанные тормоза;[]
4937#FL1106;FL1106;1537;FIT;Тормозная система;Комплект тормозных башмаков, барабанные тормоза;[]
4937#FL1110;FL1110;1537;FIT;Тормозная система;Комплект тормозных башмаков, барабанные тормоза;[]
4937#FL1111;FL1111;1537;FIT;Тормозная система;Комплект тормозных башмаков, барабанные тормоза;[]
4937#FL1112;FL1112;1537;FIT;Тормозная система;Комплект тормозных башмаков, барабанные тормоза;[]
4937#FL1114;FL1114;1537;FIT;Тормозная система;Комплект тормозных башмаков, барабанные тормоза;[]
На выходе получаю ошибку:
Traceback (most recent call last):
File "C:\Users\Sirius_McLine\PycharmProjects\BrixoDoc\manage.py", line 22, in <module>
main()
File "C:\Users\Sirius_McLine\PycharmProjects\BrixoDoc\manage.py", line 18, in main
execute_from_command_line(sys.argv)
File "C:\Users\Sirius_McLine\PycharmProjects\BrixoDoc\venv\lib\site-packages\django\core\management\__init__.py", line 446, in execute_from_command_line
utility.execute()
File "C:\Users\Sirius_McLine\PycharmProjects\BrixoDoc\venv\lib\site-packages\django\core\management\__init__.py", line 440, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Users\Sirius_McLine\PycharmProjects\BrixoDoc\venv\lib\site-packages\django\core\management\base.py", line 414, in run_from_argv
self.execute(*args, **cmd_options)
File "C:\Users\Sirius_McLine\PycharmProjects\BrixoDoc\venv\lib\site-packages\django\core\management\base.py", line 460, in execute
output = self.handle(*args, **options)
File "C:\Users\Sirius_McLine\PycharmProjects\BrixoDoc\SiteBrixo\management\commands\imortCSV.py", line 33, in handle
get_products()
File "C:\Users\Sirius_McLine\PycharmProjects\BrixoDoc\SiteBrixo\management\commands\imortCSV.py", line 8, in get_products
products = [
File "C:\Users\Sirius_McLine\PycharmProjects\BrixoDoc\SiteBrixo\management\commands\imortCSV.py", line 10, in <listcomp>
ExternalId=tmp_data.loc[row]['ART_ID'],
File "C:\Users\Sirius_McLine\PycharmProjects\BrixoDoc\venv\lib\site-packages\pandas\core\indexing.py", line 967, in __getitem__
return self._getitem_axis(maybe_callable, axis=axis)
File "C:\Users\Sirius_McLine\PycharmProjects\BrixoDoc\venv\lib\site-packages\pandas\core\indexing.py", line 1202, in _getitem_axis
return self._get_label(key, axis=axis)
File "C:\Users\Sirius_McLine\PycharmProjects\BrixoDoc\venv\lib\site-packages\pandas\core\indexing.py", line 1153, in _get_label
return self.obj.xs(label, axis=axis)
File "C:\Users\Sirius_McLine\PycharmProjects\BrixoDoc\venv\lib\site-packages\pandas\core\generic.py", line 3864, in xs
loc = index.get_loc(key)
File "C:\Users\Sirius_McLine\PycharmProjects\BrixoDoc\venv\lib\site-packages\pandas\core\indexes\range.py", line 389, in get_loc
raise KeyError(key)
KeyError: 'ART_ID'
В чем может быть проблема?
Я пробовал указывать явно столбец for row in tmp_data['name']
Но ошибка та же самая.