0

クレートテーブルにオブジェクトの配列があり 、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でそれを行うことができますか?

4

2 に答える 2

1

パラメータサポートを使用する場合、辞書を Crate 固有のオブジェクト構文に変換する必要はありません。(とにかく使用する必要があります)

辞書の単一の値のみを更新する必要がある場合は、次のようにすることができます。

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

辞書のリストの場合、次のように値全体を更新する必要があります。

cur.execute("update servers set tags = ?", (updated_list,))
于 2017-01-18T18:57:39.187 に答える