期望变量,但列为VARCHAR

问题描述 投票:0回答:3

我正在尝试将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插入语句的情况下插入dictTO_VARIANT

我正在尝试将JSON字符串插入下面定义的雪花表中:从雪花.sqlalchemy导入VARIANT类Identify(Base):__tablename__ ='identify'event_id = Column(Integer,...

python-3.x sqlalchemy snowflake snowflake-connector-python
3个回答
0
投票

请尝试parse_json函数,它将字符串转换为变量类型。


0
投票

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


0
投票

API文档说,通过转换为字符串,获取数据

© www.soinside.com 2019 - 2024. All rights reserved.