<p>我已经解决了我的问题。首先,这里是一段代码,现在可以使用:</p>
<pre><code>forced_rentals = []
for force_row in range(4,forced_sheet.nrows):
Fnum = forced_sheet.cell_value(force_row, 0)
Fnum_type = type(Fnum)
if type(Fnum) is float:
Fnum = str(Fnum)
Fnum = Fnum.replace('.0','')
if Fnum[-2:] == '/1':
Fnum = Fnum.replace('/1','')
for book_row in range(1,bookings_sheet.nrows):
Bnum = bookings_sheet.cell_value(book_row,0)
Bnum_type = type(Bnum)
if type(Bnum) is float:
Bnum = str(Bnum)
Bnum = Bnum.replace('.0','')
if Bnum[-2:] == '/1':
Bnum = Bnum.replace('/1','')
if Fnum == Bnum:
booNum = str(bookings_sheet.cell_value(book_row,0))
renCODate = bookings_sheet.cell_value(book_row,2)
renCOLoc = str(bookings_sheet.cell_value(book_row,4))
renUnit = str(bookings_sheet.cell_value(book_row,13))
renAgent = str(bookings_sheet.cell_value(book_row,12))
forced_rentals += [[booNum,renCODate,renCOLoc,renUnit,renAgent]]
break
</code></pre>
<p>1)一个all number <code>Bnum</code>或<code>Fnum</code>变量可能是字符串,例如'7123456'或浮点7123456.0,它没有被识别为相同的值。转换为string by只会使浮点“7123456.0”再次变得不同。我通过以下方法解决了这个问题:</p>
^{pr2}$
<p>此操作将浮点转换为字符串并删除“.0”</p>
<p>2)下一个问题是当我意识到并不是所有的预订号码(<code>Bnum</code>和<code>Fnum</code>变量)都将包含/1。租金7123456和租金7123456/1是相同的,但我们的报表服务器(生成excel表)将交替使用这两种格式,这意味着强制表可能有7123456,而预订表可能有7123456/1。为了弥补这一点,我添加了以下内容:</p>
<pre><code>if Fnum[-2:] == '/1':
Fnum = Fnum.replace('/1','')
</code></pre>
<p>这将查找任何以'/1'结尾的预订号码并将其删除。在</p>