2017-01-18 6 views
0

crate 테이블에 개체 배열이 있는데 SELECT 및 fetchall() 명령을 사용하면 다음과 같은 사전 목록이 표시됩니다.개체 배열에 개체/사전 삽입하기 (Crate, python)

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

그런 다음이 사전 중 하나에서 값을 변경하고 SQL UPDATE를 사용하여 배열을 업데이트하려고합니다. 하드 코드에서는 다음과 같아야합니다

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

없음 "에 대한이 같은 문자열로

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

:

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

그것은 내가이 사전을 구문 분석해야 함을 의미 키 = = 대신에 어떻게해야합니까?

답변

0

SQLAlchemy와 같은 ORM을 사용하여 C에 연결하는 것이 좋습니다. 속도 데이터베이스, 상자에서 지원되는 것 같습니다. 그런 다음 파이썬 개체를 사용하여 데이터베이스 값을 업데이트 할 수 있습니다. 이렇게하면 유형을 손으로 적절한 스키마로 변환하는 번거 로움을 줄일 수 있습니다.

1

매개 변수 지원을 사용하는 경우 사전을 Crate 특정 개체 구문으로 변환 할 필요가 없습니다. 당신이 필요 사전의 목록을 귀하의 경우에는

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

: 당신은이 같은 뭔가를 할 수있는 사전의 하나의 값을 업데이트해야하는 경우

을 (당신이 정말로 어쨌든 사용해야하는) 다음과 같이 전체 값을 업데이트하십시오.

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