在python中,如何更改列表的元素数据类型

天行者

使用python3.4.3和psycopg2

我有以下SQL查询

SELECT
    somestring1,
    somestring2,
    float1,
    float2,
    float3
FROM
    table

我想将float1,float2,float3合并到一个单独的float []中,然后用于UPDATE将其返回数据库,所以我编写了以下代码:

res = cur.fetchall()
date = list(map(lambda x: x[0],res))
code = list(map(lambda x: x[1], res))
#vector = list(map(lambda x: list(map(float,x[2:])), res)) # this one works
vector = list(map(lambda x:x[2:],res)) # which won't work
res = list(zip(vector,date,code))
cur.executemany("""
    UPDATE mapped SET
        vector = %s
    WHERE
        date = %s AND
        code = %s
""",res) # error occurs here

错误信息:

psycopg2.ProgrammingError: column "vector" is of type double precision[] but expression is of type record
LINE 3:             vector = (16.25, 15.56, 16.07, 133.409279, 15.35...
                         ^
HINT:  You will need to rewrite or cast the expression.

从错误消息中我猜测是,当vector创建时,它的创建方式类似于list<Any>而不是list<float>与将每个元素强制转换为浮动元素相比,我如何做得更简单map

克洛多尔多·内托(Clodoaldo Neto)

您正在传递一个元组列表。Psycopg将元组改编成一条记录。您需要传递列表列表,因为列表适用于数组:

vector = list(map(lambda x:list(x[2:]),res))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在PHP中更改特定元素数组中的数据类型

Python:检查列表中的数据类型

包含列表和其他数据类型的字典字符串,而无需更改python中的数据类型

更改元组元素的数据类型(PYTHON)

如何在Python中使用不同的数据类型打印嵌套列表的元素?

如何更改dask数据框中的列的数据类型?

如何根据python中的条件更改多个数据框列的数据类型?

如何使用漂亮的汤从列表中获取元素数据?

如何在 Python 中获取列表中的元素数量?

如何更改混合类型的数据类型

Python:如何更改数据类型并覆盖导入模块中的变量

在Python中编码JSON时如何更改数据类型

如何在python中更改numpy.random.rand数组的数据类型?

如何更改python中所有列的数据类型

如何避免在MongoDB中更改字段数据类型?

如何更改Mongo文档中嵌套字段的数据类型?

如何在StructType的StructField中更改列的数据类型?

如何在Oracle View中更改列数据类型?

如何在SQL Server中更改列的数据类型?

如何更改DataTable中列的数据类型

如何在程序中更改数据类型?

如何在DynamoDb中更改列的数据类型?

如何更改PFObject中归档文件的数据类型?

如何更改csv列中的数据类型

在python中更改数组的数据类型

将python中的数据类型从complex更改为int

如何通过peewee在sqlite中存储python列表和字典数据类型

如何在R中循环使用列表数据类型?

如何从列表中删除特定数据类型