【问题标题】:Accesing query results in robot framework在机器人框架中访问查询结果
【发布时间】:2022-01-19 11:07:08
【问题描述】:

我正在使用 databaselibrary 获取多行数据(每列上)以用于进一步测试。我需要能够获取单独的值以供进一步使用。目前我正在尝试:

    ${Cardnumbers}=      query   SELECT card_num from xxxxxxxxx WHERE status = 
    'Issued' and ACTIVE_Flg = 'Y' and ROWNUM < 100
    Set Test Variable    ${Cardnumbers}
    ${Cardnumber} =  set test variable  ${Cardnumbers[0][1]}
    log   ${Cardnumber}

我做错了什么?我认为这就是我处理早期案例的方式,但现在它失败了(说它找不到 ${Cardnumbers[0][1])。查询的输出是:

   ${Cardnumbers} = [('2661999743484',), ('2661999743491',), ('2661999743507',), 
   ('2661999743514',), ('2661999743521',), ('2661999743538',), ('2661999743545',), 
   ('2661999743552',), ('2661999743569',), ('2661999743576',),...

【问题讨论】:

    标签: python database robotframework


    【解决方案1】:

    您正在处理元组中缺少的元素。 试试这样:

    ${Cardnumber} =  set test variable  ${Cardnumbers[0]}[0]
    

    【讨论】:

      【解决方案2】:

      您的查询将返回单列 - SELECT card_num from ,但您正试图访问结果中的第二列。 请记住,响应 - 当它已经是一个 python 对象时 - 是一个元组列表:访问它时,第一个索引将是响应中的“行”,第二个索引 - “列”。

      因此,通过键入 ${Cardnumbers[0][1]},您实际上是在说“从第一行和第二列获取值”。把它改成${Cardnumbers[0][0]}(或者[4][0]第5行等等,只要第二个索引是0)就可以了。

      【讨论】:

      • 感谢您的建议,不幸的是,当我输入 [0][0] 时它不起作用
      • 好的,[0][0] 的错误说明是什么?
      猜你喜欢
      • 1970-01-01
      • 2018-01-18
      • 2021-04-10
      • 2021-02-04
      • 1970-01-01
      • 2019-10-12
      • 1970-01-01
      • 1970-01-01
      • 2018-05-19
      相关资源
      最近更新 更多