在对象数组中插入对象/字典(Crate,python)



>我在crate表中有一个对象数组,当我发出SELECT和fetchall()命令时,它给了我以下字典列表:

[{"key": "two", "id": "1", "value": "three", "tag": False}, etc..]

之后,我想从这些字典之一中更改一个值并使用 sql UPDATE 更新数组。在硬代码中,它应如下所示:

cur.execute('UPDATE servers SET 
tags =[{key= "two", id= "1", value= "three", tag= False}, etc..]')

这意味着我必须解析这个字典:

{"key": "two", "id": "1", "value": "three", "tag": False}

成这样的字符串:

{key = "two", id = "1", value = "three", tag = False}

没有 " 作为键,= 而不是 : 。我怎样才能在python中做到这一点?

在以下情况下,您无需将字典转换为特定于 Crate 的对象语法您可以使用参数支持。(无论如何你真的应该使用)

如果您只需要更新字典的单个值,您可以这样做像这样:

cur.execute("update servers set tags['value'] = ?", ('three',))

对于字典列表,您需要更新整个值,如下所示:

cur.execute("update servers set tags = ?", (updated_list,))

我建议使用诸如SQLAlchemy之类的ORM连接到crate数据库,该数据库似乎是开箱即用的。然后,您可以使用 python 对象来更新数据库值。这样可以省去手动将类型转换为适当架构的麻烦。

相关内容

  • 没有找到相关文章

最新更新