Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pymssql如何删除查询结果中的数据类型_Python_Pymssql - Fatal编程技术网

Python pymssql如何删除查询结果中的数据类型

Python pymssql如何删除查询结果中的数据类型,python,pymssql,Python,Pymssql,我使用pymssql库查询结果,下面是一个示例: ('999001','4871C9DF-6E95-458B-B763-6BBB6C75F5D',1,真,2,'EOI','Drople',None,None,None,None,4,False,False,False,'Enbloc',False,False,False,None,None,None,None,None,None,None,None,None,None,None,None,Investment,'Investment',,None

我使用pymssql库查询结果,下面是一个示例:

('999001','4871C9DF-6E95-458B-B763-6BBB6C75F5D',1,真,2,'EOI','Drople',None,None,None,None,4,False,False,False,'Enbloc',False,False,False,None,None,None,None,None,None,None,None,None,None,None,None,Investment,'Investment',,None,None,None,None,None,None,销售顾问,None,Koe、 None,None,None,None,None,None,None,None,None,None,1,None,True,“整体”,False,False,False,False,False,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None“1.2亿美元”,无,无,无,无,无,无,无,无,无,小数('120000000.00'),小数('120000000.00'),小数('120000000.00'),小数('120000000.00'),小数('120000000.00')),“未披露”,“Hubville有限公司”,“一个激动人心的投资机会-首尔门户”,无,无,无,无,“一个激动人心的投资机会-首尔门户”,无,无,无,datetime.datetime(2016,1,15,0,5,51480000),datetime.datetime(2016,12,7,5,6,52633000),1,无)

但是我发现有一些值像
Decimal('120000000.00')
datetime.datetime(2016,1,15,0,5,51480000)
。我只想得到没有Decimal()和datetime.datetime()的原始值。我如何实现这一点

这是我的密码:

def extract_opportunities(sql):
    cursor.execute(sql)
    opportunities = cursor.fetchall()
    attributes = get_attributes_of_table(cursor)
    availability_id_idx = attributes.index("availabilityid")
    opportunity_dict = dict()
    for idx, val in enumerate(opportunities):
        opportunity_key = val[availability_id_idx]
        opportunity_value = dict(zip(attributes, val))
        opportunity_dict[opportunity_key] = opportunity_value
此函数的目的是使用属性和值对构造JSON格式文件,如:

{'Price': '120000000.00'} 
而不是

{'Price': Decimal('120000000.00')}

您可以将
default
函数传递给将
Decimal
转换为字符串的
json.dumps
方法,如下所示:

导入日期时间
从十进制输入十进制
导入json
导入pymssql
def json_转储_默认值(obj):
#参考:http://stackoverflow.com/a/16957370/2144390
如果isinstance(对象,十进制):
返回str(obj)
如果isinstance(对象,datetime.datetime):
返回str(obj)
提高打字错误
conn=pymssql.connect(
host=r'localhost:49242',
数据库=“myDb”
)
crsr=conn.cursor(如dict=True)
sql=”“”\
挑选
将(十进制数(18,4),120000000)转换为价格,
将(日期时间,'2016-12-07 05:06:52.633')转换为销售日期
联合所有
挑选
将(十进制数(18,4),3400000000)转换为价格,
将(日期时间,'2017-01-09 07:44:32.1')转换为销售日期
"""
crsr.execute(sql)
rows=crsr.fetchall()
打印()
打印(“pymssql返回的行:”)
打印(行)
as_json=json.dumps(行,默认值=json_dumps\u默认值,排序键=False,缩进=2)
打印()
打印(“json.dumps返回的行:”)
打印(以json格式)
crsr.close()
康涅狄格州关闭
控制台输出为:

pymssql返回的
行:
[{'Price':十进制('120000000.0000'),'SaleDate':datetime.datetime(2016,12,7,5,6,52,633000)},{'Price':十进制('3400000000.0000'),'SaleDate':datetime.datetime(2017,1,9,7,44,32,100000)}]
json.dumps返回的行:
[
{
“价格”:“120000000.0000”,
“销售日期”:“2016-12-07 05:06:52.633000”
},
{
“价格”:“3400000000.0000”,
“销售日期”:“2017-01-09 07:44:32.100000”
}
]

请注意,对于
Decimal
值,该函数可以返回
float(obj)
而不是
str(obj)
,但可能会发生精度损失。

您可以将
默认值
函数传递给
json.dumps
方法,该方法将
Decimal
转换为字符串,如下所示:

导入日期时间
从十进制输入十进制
导入json
导入pymssql
def json_转储_默认值(obj):
#参考:http://stackoverflow.com/a/16957370/2144390
如果isinstance(对象,十进制):
返回str(obj)
如果isinstance(对象,datetime.datetime):
返回str(obj)
提高打字错误
conn=pymssql.connect(
host=r'localhost:49242',
数据库=“myDb”
)
crsr=conn.cursor(如dict=True)
sql=”“”\
挑选
将(十进制数(18,4),120000000)转换为价格,
将(日期时间,'2016-12-07 05:06:52.633')转换为销售日期
联合所有
挑选
将(十进制数(18,4),3400000000)转换为价格,
将(日期时间,'2017-01-09 07:44:32.1')转换为销售日期
"""
crsr.execute(sql)
rows=crsr.fetchall()
打印()
打印(“pymssql返回的行:”)
打印(行)
as_json=json.dumps(行,默认值=json_dumps\u默认值,排序键=False,缩进=2)
打印()
打印(“json.dumps返回的行:”)
打印(以json格式)
crsr.close()
康涅狄格州关闭
控制台输出为:

pymssql返回的
行:
[{'Price':十进制('120000000.0000'),'SaleDate':datetime.datetime(2016,12,7,5,6,52,633000)},{'Price':十进制('3400000000.0000'),'SaleDate':datetime.datetime(2017,1,9,7,44,32,100000)}]
json.dumps返回的行:
[
{
“价格”:“120000000.0000”,
“销售日期”:“2016-12-07 05:06:52.633000”
},
{
“价格”:“3400000000.0000”,
“销售日期”:“2017-01-09 07:44:32.100000”
}
]

请注意,对于
Decimal
值,函数可以返回
float(obj)
而不是
str(obj)
,但可能会出现精度损失。

谢谢,这非常有用!谢谢,这非常有用!