期待变体,但得到了列的瓦尔查尔



我正在尝试将 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

有没有办法在不编写使用TO_VARIANT转换函数的 SQL 插入语句的情况下插入json_strdict

这是有效的 JSON 吗? 在我看来,你有无与伦比的括号...

-保罗-

API 文档表示,VARIANT 支持通过转换为字符串来获取数据。 除了将字符串转换为变体INSERT之外,我没有发现其他方法来存储数据

相关内容

  • 没有找到相关文章

最新更新