es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Obtener datos decimales de la base de datos de Postgrades mediante Django.

Uso Python y el framework Django para obtener algunos datos decimales de la base de datos PostGress.
Mi pregunta es por qué la variable “newpoilat” se muestra correctamente, pero ¿por qué se muestra la variable “poilat” como se muestra a continuación?!
Quiero que la variable “poilat” se muestre normalmente.
¡Y luego quiero usar “zip (poilat, poilog)”, pero da un error!

Mi código:
“`
poi<em>lat = []
poi</em>log = []
for id in IDs:
poi<em>name = end</em>poi.values<em>list('lat','log').filter(id=id)
new</em>poi<em>lat = poi</em>name[0][0]
new<em>poi</em>log = poi<em>name[0][1]
print(""new</em>poi<em>lat:"" , new</em>poi_lat)

<pre><code>poi_lat.append(new_poi_lat)
poi_log.append(new_poi_log)
</code></pre>

print(""poi<em>lat:"" , poi</em>lat)
coordinates = (zip(poi<em>lat, poi</em>log))

Salida:
new<em>poi</em>lat: 34.791553
new<em>poi</em>lat: 34.804567

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

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    La variable “poi_lat” se muestra con el tipo “Decimal” porque se está almacenando como un objeto Decimal. Esto se debe a que los valores provienen de una base de datos de PostGress que almacena los valores decimales como objetos “Decimal”. Para mostrar la variable “poi_lat” de forma normal, puedes convertir cada valor de Decimal a flotante utilizando el método “float()”, como se muestra a continuación:

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

    En cuanto al error que estás recibiendo con “zip(poi_lat, poi_log)”, es probable que la lista “poi_log” también contenga objetos Decimal. Para solucionar esto, puedes convertir cada valor a flotante tal como lo hiciste con “poi_lat”. Por lo tanto, el código corregido se vería así:

    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(float(new_poi_lat))
        poi_log.append(float(new_poi_log))
    
    print("poi_lat:", poi_lat)
    coordinates = (zip(poi_lat, poi_log))
    

Comments are closed.