使用django将CSV文件导入postgres

Shubham batra

我正在尝试使用Django将csv文件导入postgres DB。

我尝试以下功能:

import os
from django.db import models
import psycopg2
from postgres_copy import CopyMapping

host = 'localhost'
port = '5432'
dbname = 'sellerhub'
username = 'postgres'
password = 'postgres'


class Reports:
    def __init__(self):
        global host, port, dbname, username, password
        try:
            self.db_conn = psycopg2.connect("host=%s port=%s dbname=%s user=%s password=%s" %(host, port, dbname, username, password))
        except psycopg2.OperationalError:
            print "Database Not Found Or the Credentials are wrong."
        self.cur = self.db_conn.cursor()
def saveUploadedInventory(self, inventory_file):
        #print "Inventory File"
        with open('uploaded_inventory_sheet.csv','wb+') as destination:
            for chunk in inventory_file.chunks():
                destination.write(chunk)
        #print "Inventory Saved."
        copy_sql = """copy fk_invent_temp from stdin WITH CSV HEADER DELIMITER as ',' """
        #print "query created"
        with open('uploaded_inventory_sheet.csv','r') as pmt_file:
            self.cur.copy_expert(sql=copy_sql, file=pmt_file)
        #print "file uploades"
        os.system('rm uploaded_inventory_sheet.csv')
        #print "removes file"

setting.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'sellerhub',
        'USER': 'postgres',
        'PASSWORD': 'postgres',
        'HOST': 'localhost',
        'PORT': '5432',
        }
    }

该函数完全执行,没有错误,

但是fk_invent表中没有数据。

如果我直接使用成功上传的PGAdmin3 UI导入该文件。请问有谁能告诉我我做错了吗?

Shubham batra

我通过逐行插入获得临时解决方案:

with open('uploaded_inventory_sheet.csv','wb+') as destination:
            for chunk in inventory_file.chunks():
                destination.write(chunk)
        print "Inventory Saved."
        reader = csv.reader(open('uploaded_inventory_sheet.csv','rb'))
        count = 0 
        for row in reader:
            if count == 0:
                count=1
                continue
            # print row[0],"\n"
            count = count +1
            try:
                self.cur.execute("""INSERT into  fk_payment_temp values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)""",(row[0],row[1],row[2],row[3],row[4],row[5],row[6],row[7],row[8],row[9],row[10],row[11],row[12],row[13],row[14],row[15],row[16],row[17],row[18],row[19],row[20],row[21],row[22],row[23],row[24],row[25],row[26],row[27],row[28],row[29],row[30],row[31],row[32],row[33],row[34],row[35],row[36],row[37],row[38],row[39],row[40],row[41],row[42],row[43],row[44]))
                print "INSERT into  fk_payment_temp values('",row[0],"','",row[1],"''",row[2],"','",row[3],"''",row[4],"','",row[5],"''",row[6],"','",row[7],"''",row[8],"','",row[9],"''",row[10],"','",row[11],"''",row[12],"','",row[13],"''",row[14],"','",row[15],"''",row[16],"','",row[17],"''",row[18],"','",row[19],"''",row[20],"','",row[21],"''",row[22],"','",row[23],"''",row[24],"','",row[25],"''",row[26],"','",row[27],"''",row[28],"','",row[29],"''",row[30],"','",row[31],"''",row[32],"','",row[33],"''",row[34],"','",row[35],"''",row[36],"','",row[37],"''",row[38],"','",row[39],"''",row[40],"','",row[41],"''",row[42],"','",row[43],"''",row[44],"','",row[45],"')"
            except:
                pass
        print count
        self.cur.callproc("flip_payment_test")
        self.cur
        self.db_conn.commit()

        print "file uploades"
        os.system('rm uploaded_inventory_sheet.csv')
        print "removes file" 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据某些键将csv文件导入postgres表

来自分类Dev

使用csvImporter将csv导入django模型

来自分类Dev

使用csvImporter将csv导入django模型

来自分类Dev

使用FDBatchMove将CSV文件导入FDTableTask

来自分类Dev

使用gem'postgres-copy'导入csv文件

来自分类Dev

将CSV导入Django模型

来自分类Dev

将CSV文件导入PostgreSQL

来自分类Dev

将输出导入CSV文件

来自分类Dev

将CSV文件导入HSQLDB

来自分类Dev

将 CSV 文件导入 Python

来自分类Dev

使用wiredtiger和zlib压缩将csv文件导入MongoDB

来自分类Dev

使用sql将数据从文件csv导入到Oracle

来自分类Dev

使用wiredtiger和zlib压缩将csv文件导入MongoDB

来自分类Dev

使用SqlBulkCopy将CSV文件导入SQL Server

来自分类Dev

使用 Python 将大型 CSV 文件导入 MySQL

来自分类Dev

使用 bash 将多个 .csv 文件导入 mysql

来自分类Dev

将数据从CSV文件导入到Postgres表中,而无需先创建表

来自分类Dev

将CSV文件导入postgres-跳过第一行

来自分类Dev

将CSV文件导入postgres-跳过第一行

来自分类Dev

尝试将CSV文件导入以逗号为分隔符的Postgres中

来自分类Dev

将数据从csv文件导入到postgres表中,而无需先创建表

来自分类Dev

将CSV文件导入Excel文件

来自分类Dev

在使用python脚本导入postgres之前,如何在csv文件中进行单元分割?

来自分类Dev

使用不正确的日期值将csv导入Postgres数据库

来自分类Dev

我应该如何使用pgAdmin 3将数据从CSV导入Postgres表中?

来自分类Dev

使用python和psycopg2将CSV导入Postgres时出错

来自分类Dev

我应该如何使用pgAdmin 3将数据从CSV导入到Postgres表中?

来自分类Dev

从CSV文件将标签导入AEM

来自分类Dev

将数据从csv文件导入Cratedb

Related 相关文章

热门标签

归档