【问题标题】:Returning Array in Snowflake Stored procedure在雪花存储过程中返回数组
【发布时间】: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 而不是字符串?

【问题讨论】:

标签: python snowflake-cloud-data-platform snowflake-connector


【解决方案1】:

我通过使用ast.literal_eval() 函数解决了这个问题,如下所示。

df["column1"] = df["column1"].apply(lambda x: ast.literal_eval(x))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-01
    • 2021-06-22
    • 1970-01-01
    • 2020-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-10
    相关资源
    最近更新 更多