【发布时间】:2022-11-11 03:00:04
【问题描述】:
我有一个返回类型作为雪花变体的存储过程。 SP 是用 JavaScript 编写的。基本上我们在 SP 中维护一个数组并添加结果和信息只是为了维护日志。从雪花工作表(UI)调用并返回时,SP 工作正常
[
"Using LOY DATABASE",
"Using STAGE SCHEMA",
"RUN ID - 20220517070653",
"Truncating Table LOY.STAGE.MEMBER.",
"Truncated Members Table.",
"Data loaded to stage table.",
"Swapped Stage table with Main Table.",
"load_status - LOADED",
"rows_loaded - 13175",
"Procedure Successfully Completed.",
"Members table count after loading : 13175"
]
但是,当从 python 脚本调用 SP 时,该数组将转换为字符串。我认为这是因为数组中存在多行和新行字符(多行)导致结果转换为字符串。我们在 python 脚本中得到这样的结果
[('[\n "Using LOY DATABASE",\n "Using STAGE SCHEMA",\n "RUN ID - 20220517145428",\n "Truncating Table LOY.STAGE.MEMBER.",\n "Truncated Members Table.", \n "Data loaded to stage table.",\n "Swapped Stage table with Main Table.",\n "load_status - LOADED",\n "rows_loaded - 13175",\n"Members table count after loading : 13175"]')]
我目前正在使用literal_eval将字符串转换为python中的列表。有没有办法在 python 脚本中将结果作为 List 而不是字符串?
【问题讨论】:
-
我认为尚不支持通过标准或 SQL Alchemy Python 连接器发送数组。 github.com/snowflakedb/snowflake-sqlalchemy/issues/114。 ODBC/JDBC 也不支持它,因此使用驱动程序的语言将字符串解析为数组或 JSON 是可行的方法。
标签: python snowflake-cloud-data-platform snowflake-connector