在Robot Framework中,我正在尝试使用excel库从excel表中获取值。我在“获取行值”关键字
中发现了以下问题Open Excel E:/Robot/excel/Test.xls
@{Datas}= Get Row Values Sheet1 0 includeEmptyCells=False
Log to console ${Datas}
如果列中的数据是从A1到Z1,则值会在$ {Datas}中正确更新,我再次使用这些值$ {Datas}将其转换为List并从中获取确切的值片材。
但现在当它超过Z1时,即A1,B1,...,Z1,AA1,AB1,AC1 .. $ {Datas}在表格中不会生成相同的内容。它存储如下
[('A1', u'Valli'), ('AA1', u'sdffgdg'), ('AB1', u'k'), ('AC1', u'h'),('AD1', u'jk'), ('AE1', u'j'), ('AF1', u";\\'"), ('AG1', u'jk'), ('AH1', u'j'), ('AI1', u'Kasthurikala')........]
我希望值与excel中的值相同,而不是按字母顺序排列[('A1','Value1'),('B1','value1'),('Z1','ValueZ'),(' AA1' , 'ValueAA1')
有没有解决方案?
答案 0 :(得分:1)
您可以按第二个元素的长度排序并断开与第一个元素的关系:
a = [('B1','value1'), ('Z1','ValueZ'),('AA1','ValueAA1'),('A1','Value1')]
a.sort(key=lambda x: (len(x[1]),x[0]))
print(a)
[('A1', 'Value1'), ('B1', 'value1'), ('Z1', 'ValueZ'), ('AA1', 'ValueAA1')]