【问题标题】:Using string replace() to get a value from a DB query result leads to problems使用字符串 replace() 从数据库查询结果中获取值会导致问题
【发布时间】:2019-06-15 05:47:19
【问题描述】:

我正在查询数据库并想要验证我的输出。来自 DB 的结果以 -> (('ABC',),) 的方式出现,我想用字符串 'ABC' 对其进行验证,但由于在我的 db 输出中收到了额外的字符,我无法进行验证。

谁能帮我删除从数据库输出的多余字符?

我尝试使用 Evaluate 函数:

Evaluate   '(('ABC',),)'.replace('(',' ')   

我只需要 ABC 的结果。

【问题讨论】:

    标签: python database robotframework


    【解决方案1】:

    不要这样做 - 将响应视为字符串,并尝试通过字符串替换来获取数据。

    响应是一个对象 - 一个元组列表,它实际上看起来像这样:

    [('ABC',),]
    

    列表中的每个元组都是一个响应行;元组的每个成员都是该行中的一列。

    要获取第一行的第一列,只需寻址它们(它们的索引从 0 开始):

    ${value}=    Set Variable    ${the response object}[0][0]
    

    例如,如果查询返回 3 行,每行有 2 列:

    [('ABC', 'DEF'), ('GHI', 'JKL'), ('MNO', 'PQR')]
    

    ,你会得到第三行的(索引:2)第二列(索引:1) - 字符串'PQR' - 用这个:

    ${value}=    Set Variable    ${the response object}[2][1]
    

    现在我希望你明白为什么使用字符串替换(在二维列表的字符串表示上)不是一个好主意。

    【讨论】:

      猜你喜欢
      • 2011-03-06
      • 1970-01-01
      • 1970-01-01
      • 2013-12-15
      • 1970-01-01
      • 2021-02-24
      • 1970-01-01
      • 1970-01-01
      • 2014-03-23
      相关资源
      最近更新 更多