Я пытаюсь вставить строку 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
?