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

时间:2017-01-18 16:57:20

标签: python sql crate

我在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中做到这一点?

2 个答案:

答案 0 :(得分:1)

如果,您不需要将字典转换为Crate特定对象语法 你使用参数支持。 (无论如何你应该使用它)

如果您只需要更新字典的单个值,则可以执行此操作 像这样的东西:

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

在您的字典列表中,您需要更新整个值,如下所示:

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

答案 1 :(得分:0)

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