使用 Django 从 Postgrades 数据库中获取十进制数据

Get decimal data from Postgrades database using Django

我使用 Python 和 Django 框架从 PostGress 数据库中获取一些十进制数据。 我的问题是变量“new_poi_lat”显示正确,但为什么变量“poi_lat”显示如下图?! 我想让“poi_lat”变量正常显示。 然后我想使用“zip(poi_lat,poi_log)”但是它给出了一个错误!

我的代码:

poi_lat = []
poi_log = []
for id in IDs:
    poi_name =  end_poi.values_list('lat','log').filter(id=id)
    new_poi_lat = poi_name[0][0]
    new_poi_log = poi_name[0][1]
    print("new_poi_lat:" , new_poi_lat)

    poi_lat.append(new_poi_lat)
    poi_log.append(new_poi_log)

   print("poi_lat:" , poi_lat)
coordinates = (zip(poi_lat, poi_log))

output:
new_poi_lat: 34.791553
new_poi_lat: 34.804567

poi_lat: [Decimal('34.791553'), Decimal('34.804567')]

那是因为有 Decimal 个对象,当您打印列表时,它会调用 repr(…),而不是 str(…)

您可以轻松地将它们转换为 floats,然后将它们放入列表中:

poi_lat = []
poi_log = []
for id in IDs:
    poi_name =  end_poi.values_list('lat','log').get(id=id)
    new_poi_lat = poi_name[0]
    new_poi_log = poi_name[1]
    print("new_poi_lat:" , new_poi_lat)

    poi_lat.append(<strong>float(</strong>new_poi_lat<strong>)</strong>)
    poi_log.append(<strong>float(</strong>new_poi_log<strong>)</strong>)

   print("poi_lat:" , poi_lat)
coordinates = (zip(poi_lat, poi_log))