Я пытаюсь вставить строку JSON в таблицу снежинок, определенную ниже:
from snowflake.sqlalchemy import VARIANT
class Identify(Base):
__tablename__ = 'identify'
event_id = Column(Integer, Sequence('event_id_seq'), unique=True, primary_key=True)
user_id = Column(String, nullable=False)
traits = Column(VARIANT, nullable=False)
Я пытаюсь вставить json_str
:
json_str = '''
{
"address": "xyz",
"age": 32,
"avatar": "xyz",
"birthday": {
"seconds": 20,
"nanos": 10
}
}
'''
Я использую следующий код для вставки json_str
в таблицу
session = Session()
obj = Identify(user_id=request.user_id,
traits=json_str)
session.add(obj)
session.commit()
session.close()
, что приводит к следующей ошибке: snowflake.connector.errors.ProgrammingError) 002023 (22000): SQL compilation error: Expression type does not match column data type, expecting VARIANT but got VARCHAR(3038) for column TRAITS
Есть ли способ вставитьjson_str
или dict
без написания оператора вставки SQL, использующего функцию преобразования TO_VARIANT
?