从数组元素中删除特殊字符并将其与另一个数组混合
Remove special characters from array elements and mix it with another array
如果重复出现,我深表歉意,但我对 Robot 框架一窍不通,我需要帮助。我有两个数组,来自数据库的结果:
@{users}= query Select * from users
@{fieldNames}= query SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'robot_test' AND TABLE_NAME = 'users';
我从中得到的结果是:
@{users}= (1, 'user1', 'pass1', 'admin'), (2, 'user2', 'pass2', 'user')
@{fieldNames} = [ ('id',) | ('username',) | ('password',) | ('role',) ]
我想过滤@(fieldNames)
成为
@{fieldNames} = [ 'id','username','password','role']
然后与@(users)
混合得到
@{mixedArray}= (('id',1) , ('username','user1'), ('password','pass1'), ('role','admin')), (('id',2) , ('username','user2'), ('password','pass2'), ('role','user'))
有办法吗?谢谢大家的帮助。
因为数据库库 returns 查询结果是一个元组列表,你可以遍历它们。我所做的唯一清理工作是使用 Combine Lists 去除 fieldNames 列表中的元组。
*** Settings ***
# Library Dialogs
Library Collections
Library DatabaseLibrary
library pymysql
*** Variables ***
@{database} pymysql users root df478444 localhost 3306
*** Test Cases ***
Whosebug
Connect To Database @{database}
@{users}= query Select * from Users
@{fieldNames}= query SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'users' AND TABLE_NAME = 'Users';
@{fields list}= Combine Lists @{fieldNames}
@{mixedArray}= Create List
:FOR ${user} IN @{users}
\ ${user row}= parse user ${user} ${fields list}
\ Append To List ${mixedArray} ${user row}
Log ${mixedArray}
*** Keywords ***
Parse User
[Arguments] ${user} ${fields}
@{line}= Create List
${list length}= Get Length ${fields}
:FOR ${i} IN RANGE ${list length}
\ @{pair}= Create List
\ ${f}= Get From List ${fields} ${i}
\ ${u}= Get From List ${user} ${i}
\ Append To List ${pair} ${f}
\ Append To List ${pair} ${u}
\ Append To List ${line} ${pair}
Return From Keyword ${line}
如果重复出现,我深表歉意,但我对 Robot 框架一窍不通,我需要帮助。我有两个数组,来自数据库的结果:
@{users}= query Select * from users
@{fieldNames}= query SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'robot_test' AND TABLE_NAME = 'users';
我从中得到的结果是:
@{users}= (1, 'user1', 'pass1', 'admin'), (2, 'user2', 'pass2', 'user')
@{fieldNames} = [ ('id',) | ('username',) | ('password',) | ('role',) ]
我想过滤@(fieldNames)
成为
@{fieldNames} = [ 'id','username','password','role']
然后与@(users)
混合得到
@{mixedArray}= (('id',1) , ('username','user1'), ('password','pass1'), ('role','admin')), (('id',2) , ('username','user2'), ('password','pass2'), ('role','user'))
有办法吗?谢谢大家的帮助。
因为数据库库 returns 查询结果是一个元组列表,你可以遍历它们。我所做的唯一清理工作是使用 Combine Lists 去除 fieldNames 列表中的元组。
*** Settings ***
# Library Dialogs
Library Collections
Library DatabaseLibrary
library pymysql
*** Variables ***
@{database} pymysql users root df478444 localhost 3306
*** Test Cases ***
Whosebug
Connect To Database @{database}
@{users}= query Select * from Users
@{fieldNames}= query SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'users' AND TABLE_NAME = 'Users';
@{fields list}= Combine Lists @{fieldNames}
@{mixedArray}= Create List
:FOR ${user} IN @{users}
\ ${user row}= parse user ${user} ${fields list}
\ Append To List ${mixedArray} ${user row}
Log ${mixedArray}
*** Keywords ***
Parse User
[Arguments] ${user} ${fields}
@{line}= Create List
${list length}= Get Length ${fields}
:FOR ${i} IN RANGE ${list length}
\ @{pair}= Create List
\ ${f}= Get From List ${fields} ${i}
\ ${u}= Get From List ${user} ${i}
\ Append To List ${pair} ${f}
\ Append To List ${pair} ${u}
\ Append To List ${line} ${pair}
Return From Keyword ${line}