import psycopg2
conn = psycopg2.connect(user="user_1",password="test123",host="127.0.0.1",port="5432",database="testdb")
cur = conn.cursor()
with open(r'/home/cybermakarov/Desktop/fbr/download_files/202033095128395ATL_IT.csv', mode='r', encoding='UTF-8', errors='strict', buffering=1) as f:
# Notice that we don't need the `csv` module.
#next(f) # Skip the header row.
reader = csv.reader(f)
next(reader)
#cur.copy 'blog_fbr_data' FROM '/home/cybermakarov/Desktop/fbr/download_files/202033095128395ATL_IT.csv' );
#database = \COPY ,'blog_fbr_data', from , var = '/home/cybermakarov/Desktop/fbr/download_files/202033095128395ATL_IT.csv', ' CSV HEADER DELIMITER', ',';
cur.copy_from(f, 'blog_fbr_data', sep=',')
conn.commit()
conn.close()
f.close()
print("Success commit")
Это мой код для вставки данных из файла .csv, он содержит более 150 000 записей, и я нашел это решение, чтобы решить эту проблему, но когда я попробовал это решение и получил ошибку в строке номер 155 потому что этот столбец содержит "," в некоторых строках из файла CSV, которые содержат объемные данные.
STATUS_CHOICES = (
('InActive', 'InActive'),
('Active', 'Active'),
)
Vendor_Type = (
('Compnay', 'Compnay'),
('Individual', 'Individual'),
)
class FBR_Data(models.Model):
SR_NO = models.IntegerField(default=1)
NTN_or_CNIC = models.BigIntegerField(primary_key=True)
Name = models.CharField(max_length=100, null=True, default=' ')
Business_Name = models.CharField(max_length=200, null=True, default=' ' )
#Extended_Business_Name = models.CharField(max_length=100, null=True, default= ' ')
class Meta:
verbose_name_plural = "FbrData"
def __stf__(self):
return self.FBR_Data
class Vendors_model(models.Model):
Client_id = models.ForeignKey(AUTH_USER_MODEL, on_delete=models.PROTECT)
Vendor_Number = models.IntegerField()
Client_Vendor_Type = models.CharField(max_length=10, choices=STATUS_CHOICES, default='InActive')
Client_Vendor_Name = models.CharField(max_length=50)
Client_Vendor_NTN = models.IntegerField()
Client_Vendor_Status = models.CharField(max_length=10, choices=STATUS_CHOICES, default='InActive')
ATL_NTN = models.ForeignKey(FBR_Data, on_delete = models.PROTECT, verbose_name='Fbr_Data', null=True)
Is_approved = models.BooleanField(default=False)
is_deleted = models.BooleanField(default=False)
class Meta:
verbose_name_plural = "Vendors"
def __stf__(self):
return self.Vendors_model
class Fbr_data_and_Vendors_Model(models.Model):
Id = models.IntegerField()
fbr_data = models.ForeignKey(FBR_Data, default=1, verbose_name='Fbr_Data', on_delete=models.SET_DEFAULT)
vendors_model = models.ForeignKey(Vendors_model, default=1, verbose_name='Vendors', on_delete=models.SET_DEFAULT)
class Meta:
verbose_name_plural = "fbrData_and_VendorsModel"
def __stf__(self):
return self.Fbr_data_and_Vendors_Model
Это модель, я также пытался сохранить нулевые значения, но у меня это не сработало. Пожалуйста, помогите мне решить эту проблему. Высоко ценю ваш вклад в решение этой проблемы. Заранее спасибо.