Ich importiere Excel in PostgreSQL mit Python. Unten ist das Feld, mit dem ich Probleme habe. Der tatsächliche Verkaufspreis war ein ganzzahliger Datentyp, der für eine Weile, aber jetzt diese Spalte einen N/A-Wert enthält, der mein Python-Skript sprengt. Gibt es etwas, das ich diesem Skript hinzufügen kann, das es anweisen wird, N/A einzubringen, ohne den Datentyp in Varchar zu ändern.N/A im Integer-Feld
import psycopg2
import xlrd
book = xlrd.open_workbook("T:\DataDump\8888.xlsx")
sheet = book.sheet_by_name("ProjectConsolidated")
database = psycopg2.connect (database = "***", user="****")
cursor = database.cursor()
delete = """drop table if exists "Python".ProjectConsolidated"""
print (delete)
mydata = cursor.execute(delete)
cursor.execute('''CREATE TABLE "Python".ProjectConsolidated
(DCAD_Prop_ID VARCHAR(25),
Actual_Close_Date date,
Actual_Sales_Price integer,
);''')
print "Table created successfully"
query = """INSERT INTO "Python".ProjectConsolidated (DCAD_Prop_ID,
Actual_Close_Date, Actual_Sales_Price)
VALUES (%s, %s, %s)"""
for r in range(1, sheet.nrows):
DCAD_Prop_ID = sheet.cell(r,0).value
Actual_Close_Date = None if not sheet.cell(r,1).value else xlrd.xldate.xldate_as_datetime(sheet.cell(r,1).value,book.datemode)
Actual_Sales_Price = None if not sheet.cell(r,2).value else sheet.cell(r,2).value
values = (DCAD_Prop_ID,
Actual_Close_Date, Actual_Sales_Price)
cursor.execute(query, values)
cursor.close()
database.commit()
database.close()
print ""
print "All Done! Bye, for now."
print ""
columns = str(sheet.ncols)
rows = str(sheet.nrows)
print "I just imported Excel into postgreSQL"
Wie möchten Sie eine N/A aus Excel in Ihrer Postgres DB darstellen? Leere Zeichenfolge? Null? 0? –
Kann ich sowieso N/A als Wert einbringen ohne den Datentyp zu ändern? –
Können Sie Ihr Skript posten oder das Problem anderweitig erklären? –