我正在尝试将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
转换函数的SQL插入语句的情况下插入dict
或TO_VARIANT
的方法?
答案 0 :(得分:0)
那是有效的JSON吗?在我看来,您拥有无与伦比的括号...
-保罗-
答案 1 :(得分:0)
API文档说,通过转换为字符串, 获取数据 支持VARIANT。
除了INSERT
将STRING转换为VARIANT之外,我没有找到其他 存储数据 的方法。