python - 在 SSIS 包 w Python 脚本中使用变量/参数
问题描述
我创建了一个包来执行以下操作:
截断暂存表 -> 运行 Python 脚本(这会从填充暂存表的 API 中提取数据)-> 运行 3 个执行 SQL 任务以将最近 5 天的数据从暂存转移到生产
我想做的是:
创建参数/变量以允许某人更改 URL、用户名和密码以在 SSMS 中进行编辑。我对 Python 和 SSIS 还很陌生,所以我真的不知道自己在做什么;但是,这是我希望拥有变量的代码行。
rTotal = requests.get('https://jira.tpp.company.com/rest/zapi/latest/zql/executeSearch?zqlQuery=creationDate%20>%3D%20startOfDay(-5d)&offset=0&maxRecords=1', auth=HTTPBasicAuth(uid, pwd) , verify=False).json()
我该怎么做呢?对于 URL,我不知道这样做是否会更好: 'https://jira.tpp.company.com/rest/zapi/latest/zql/executeSearch?zqlQuery=' + @[User: :url] 如果那甚至你会怎么做。对于 uid 和 pwd,我可以创建像 @[User::uid] & @[User::pwd] 这样的变量/参数来替换 uid 和 pwd 吗?我需要将它包装在任何东西中或在某个地方定义它吗?
提前感谢您提供的任何帮助。
解决方案
我假设您将此脚本作为执行进程任务执行,在 Executable 字段中包含 python.exe 的路径,在 Arguments 字段中包含脚本本身的路径。
没有内置方法可以像使用 C# 或 VB 脚本任务那样使 Python 脚本可以使用 SSIS 变量,但是您可以在 Arguments 字段的末尾传递它们,然后使用 sys.argv 作为如果它们是命令行参数。
将变量添加到 Arguments 的方式是在 Execute Process Task Editor 窗口的 Expressions 选项卡中:
在该选项卡上,有一个“杂项”标题和一个空白表达式字段。单击该字段,将显示“...”按钮。点击那个
在出现的新窗口中,选择 Arguments 作为 Property,然后单击此窗口的 Expression 字段中的“...”
在这里,您需要使用 SSIS 表达式语法设置参数,包括文件路径和要传入的变量。请注意,您需要在每个之前使用 \ 转义 "s 和 \s。您正在拍摄这样的东西:
"\"C:\\your_file_path_here\\your_script.py\" \"" + @[User::url] + "\" " + @[User::uid] + " " + @[User::pwd]
您可能还需要引用您的 UID/PW 字段,具体取决于它们中允许的字符。
设置完成后,这些变量将像任何其他命令行参数一样传递到您的脚本中。您可以在脚本顶部添加“import sys”,并使用 sys.argv[0] 作为 URL,使用 sys.argv[1] 作为 UID,使用 sys.argv[2] 作为 PW。
推荐阅读
- python-3.x - 慢序列化过程Django rest框架
- c# - pdf提取到带有unicode字符的docx C#
- c# - VB 到 C# 的转换错误(assign 和 if 语句)
- sql - 如何根据 Oracle 中用户的输入创建动态视图?
- c++ - Sublime text 3 在编译时出错
- docker - ansible aws ecr 登录而不使用 docker 命令
- javascript - 如何将 onClick 功能添加到 React Js 中的特定列?
- flutter - Flutter:即使用 setState() 包围它,变量也不会为小部件更新
- flask - IIS 上的 Python 烧瓶应用程序无法在 Windows Server 2019 上运行
- r - Llist 全局环境中的数据框名称