2016-06-03 7 views
0

Ich benutze Pypyodbc, um Daten zu ziehen, aber ich werde die Daten für dieses Beispiel vereinfachen. Mein Problem ist, dass ich eine Spalte namens 475Election habe, und wenn ich Daten aus dieser Spalte ziehe, bekomme ich 475 als Wert in Python. Zum Beispiel:Pypyodbc ziehen SQL-Spalte als Wert

TradeID ...Other Values... 475Election 
1   ...Other Values...   0 

Aber wenn ich Python verwenden Ich erhalte die Ausgabe

1   ...Other Values...   475.0 

Ich glaube, dass dies ein Ergebnis eines Fehlers in Datentyp oder vielleicht mit pypyodbc oder einfach nur als SQL Problem sein kann Im Algemeinen. Auch wenn ich diese Informationen in SQL abfrage, gibt es den richtigen Wert zurück. 475Election ist ein Bit-Datentyp.

EDIT * -Code in Python

cursor = connection.cursor() 
SQLCommand = "SELECT * FROM dbo.Trade" 
cursor.execute(SQLCommand) 
column_names = [d[0] for d in cursor.description] 
try: 
    column_names.remove('ssma_timestamp') 
except ValueError: 
    pass 
SQLCommand = "SELECT " + ', '.join(column_names) + " FROM dbo.Trade" 
cursor.execute(SQLCommand) 
vals = cursor.fetchall() 
SQLCommand_steve = "INSERT INTO dbo.Trade (" + ', '.join(column_names) + ") VALUES (" + ','.join('?' * len(column_names)) + ")" 
print SQLCommand_steve 
print vals 
cursor_steve.executemany(SQLCommand_steve, vals) 
connection_steve.commit() 
connection_steve.close() 
connection.close() 
print 'done' 

Ausgang:

INSERT INTO dbo.Trade (tradeid, *redacted column names for compliance*, 475election) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?) 
53, u'1', u'2016-01-26 10:11:55', *Redacted, *Redacted, True, *Redacted, *Redacted, False, False, None, None, None, 475.0 

Tatsächlicher Wert für den zuletzt gedruckten Wert ist die 475election Spalte und 0. Ich bin mit Microsoft SQL Server Express sein sollte (64bit), das Betriebssystem ist Microsoft Windows NT 6.1. Die Version ist 12.0.4422.0

+1

Welche Geschmack von SQL ziehst du aus? Ich hätte das von einem Wert erraten, der gewaltsam konvertiert wird, aber ein Spaltenname? – kayla210

+1

Datenbankmodul? Code verwendet, um die Ausgabe zu produzieren? Wie wird Ihre Tabelle erstellt (welche Schlüsselparameter)? – Torxed

Antwort

0

ich es herausgefunden hatte die Spalte von [475Election] zu TaxElection, um als eine ganze Zahl den Wert pypyodbc zu stoppen umbenannt werden aus der Lektüre anstelle eines boolean