我正在学习Python,并编写了一些代码来从SQL Server表中检索数据。代码如下:
import pyodbc
connection = pyodbc.connect("Driver={SQL Server Native Client 11.0};"
"Server=xxx"
"Database=xxx"
"uid=xxx"
"pwd=xxx"
)
cursor = connection.cursor()
cursor.execute('SELECT * FROM Dealers')
for row in cursor:
print(list(row))
这段代码运行良好,但对于某些数据类型,输出并不是我所期望的。例如,我有一行输出如下:
Decimal('0.000'), Decimal('83.360'), True, True, Decimal('0.000'), datetime.date(2017, 5, 31), True, 1, True, True, datetime.datetime(2017, 5, 31, 18, 28, 57, 686666)
与Decimal("83.360"(不同,我如何简单地得到83.360?日期/时间值相同?
Decimal('83.360')
和datetime.date(2017, 5, 31)
是Decimal
对象和datetime.date
对象的默认表示(repr()
(。如果你想要";仅83.360和2017-05-31";然后您可以对它们调用str()
(而不是repr()
(,您将获得该值的字符串表示。然而,请注意
x = str(Decimal('83.360'))
将导致x是str
,即它将失去其编号性,因此
y = x + 1
导致错误('TypeError:只能将str(而不是"int"(连接到str'(,而不是84.360
。