字典输出与PYTHON中的预期不符
此处prnson.result包含从查询提交的数据。我想要预期的产出,但它不会到来。我正在使用python 2.5字典输出与PYTHON中的预期不符,python,dictionary,Python,Dictionary,此处prnson.result包含从查询提交的数据。我想要预期的产出,但它不会到来。我正在使用python 2.5 for row in prsnobj.result: ansdb = {row[0] : row[1]} print ansdb 实际:{1L:3L}{2L:4L}{3L:2L}{4L:2L}{5L:2L} 应为:{1:3,2:4,3:2,4:2,5:2}当使用不同的数据库接口时,从数据库中获取的整数通常作为Long返回 如果你想要你想要的输出 ansdb = {
for row in prsnobj.result:
ansdb = {row[0] : row[1]}
print ansdb
实际:{1L:3L}{2L:4L}{3L:2L}{4L:2L}{5L:2L}
应为:{1:3,2:4,3:2,4:2,5:2}当使用不同的数据库接口时,从数据库中获取的整数通常作为
Long
返回
如果你想要你想要的输出
ansdb = {}
for row in prsnobj.result:
ansdb[int(row[0])] = int(row[1])
也许for Python有助于澄清问题,因为L的意思是它是长整数(64位)形式,所以返回的值确实仍然正确。当你创建一个新的字典时,它会自动将所有的条目转换成长格式;相反,您应该使用元组,或者只打印循环本身中的每个元组:
for row in prsnobj.result:
print row[0] + " : " + row[1]
或
根据prsnobj对象的定义方式,最终可能会得到长整数。如果是这样,您需要回顾定义prsnobj的代码,并检查它是否正确创建。使用打印输出确保对象始终处于您希望它处于的状态
for row in prsnobj.result:
ansdb = {int(row[0]) : int(row[1])}
print ansdb
你的结果类型很长,你应该转换为int相关:这个问题没有解决方案,一个是qurestionOP想要一个dict,而不是多个dict。我不会说总是-这取决于你使用的界面是的,我不想要多个dictionary…我想要的是一个全合一的dictionary人,这里的人开始变得懒惰了。有人会认为,实际的问题是从long中获取int,并在dict中添加唯一的键将是一项简单的任务
for row in prsnobj.result:
ansdb = {int(row[0]) : int(row[1])}
print ansdb