在Python3中使用Psycopg 2解析元组的结果列表

时间:2019-02-14 08:19:55

标签: python list parsing psycopg2

如何使用Psycopg 2中的Python 3从结果的每个索引中删除?

以下是查询的结果;根据{{​​3}}

,我想这是一个元组列表
import psycopg2
conn = psycopg2.connect(
    host="localhost", database="mydb_name", user="postgres", password="mydb_pwd);

# Activate connection cursor
cur = conn.cursor()
cur.execute(
    """
    SELECT
        (dmp).path[1],
        degrees(
            ST_Azimuth(
                (dmp).geom,
                ST_SetSRID(ST_MakePoint(391139.27, 5821816.69, 1.6), 25833)
            )
        ) AS azm 
    FROM 
    (SELECT ST_DumpPoints(geometry) AS dmp
     FROM surface_geometry
     Where cityobject_id=95) q
    """)
BuildingsAzimuth = cur.fetchall()

下面是结果的简要视图。

[(1, 218.030625163645),
 (1, 218.002520152173),
 (1, 218.002523848173),
 (1, 218.030628886541),
 (1, 218.030625163645),
 (1, 218.043760742269),
 (1, 218.030625163645),
 (1, 218.030628886541),
         .
         .
         .
 (1, 218.439989653911),
 (1, 218.002523848173),
 (1, 218.002520152173)]

2 个答案:

答案 0 :(得分:1)

列表解析与将元组拆包结合在一起是这里的方法:首先将结果分配给变量(在这种情况下,我将其分配给result_list),然后使用对两个元素进行迭代的列表理解(索引和值)中的元组,并且仅返回结果的值,而不返回索引。

cleaned_result = [value for index, value in results_list] #Creates a new list with values you are interested in, without the indices.  
print(cleaned_result[0:3])

结果:

[218.030625163645, 218.002520152173, 218.002523848173]

答案 1 :(得分:0)

我想结束这一问题,因为所有不必要的谈话或讨论都无济于事,我也不是要在这里撬动任何人的声誉,无论它在这里如何运作。我撤回了对这个问题的更多答案。请删除此问题。