[英]Robot Framework: How to read a random row in a csv files and use the values?
我在python中創建了這段代碼:
import csv
import random
class RandomRowFromCsv (object):
ROBOT_LIBRARY_SCOPE = 'Global'
def __init__(self):
print 'Read Random Cell Value in CSV File'
def read_random_row(self,filename):
csv_userinfo=[]
auserinfo={}
with open(filename,'rb') as csvfile:
reader=csv.DictReader(csvfile)
csv_userinfo=list(reader)
lengthofcsv=len(csv_userinfo)
position=random.randrange(1,lengthofcsv)
auserinfo=RandomRowFromCsv(*csv_userinfo[position])
return auserinfo.username
return auserinfo.password
但我無法獲取值並在Robot Framework中創建一個腳本來獲取它們的值,有人可以幫助我嗎?
這條線錯了:
auserinfo = RandomRowFromCsv(*csv_userinfo[position])
您正在創建一個新的RandomRowFromCsv
對象(循環引用), a)您不需要,以及b) class'es構造函數不接受參數(如果a)不適用)。
通過該行,您已經解析了csv文件並將其放在userinfo
列表中,您只需將行分配給auserinfo
:
auserinfo = csv_userinfo[position]
現在auserinfo
是一個詞典; 要獲取名稱和密碼,您應該使用aserinfo['username']
(其中“username”是csv列名)。 點符號不起作用 - 它是對象屬性,這不是這里的情況。
並同時返回兩者,將它們作為元組返回 - 將最后兩行更改為:
return aserinfo['username'], aserinfo['password']
最后,你有一個小的邏輯流 - 由於1
in
position = random.randrange(1, lengthofcsv)
,第一行永遠不會被選中 - position
永遠不會有值0,這是第一行的索引; 所以最好將randrange
參數更改為0
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.