我能够让列在单独的列表中输出列的值。但是,我需要保留这些值并逐个使用它们来执行Amazon查找。亚马逊查找不是问题。让XLRD一次给出一个值是一个问题。是否还有一种在Python中设置时间的有效方法?我发现计时器问题的唯一答案是记录进程开始的时间并从那里开始计数。我宁愿只是一个计时器。这个问题在这里有两个部分是我到目前为止所做的。
我使用argv [1]使用xlrd加载电子表格我使用argv [2]将其复制到新的电子表格名称; argv [3]我需要成为计时器实体,但我还没那么远。
我试过了:
import sys
import datetime
import os
import xlrd
from xlrd.book import colname
from xlrd.book import row
import xlwt
import xlutils
import shutil
import bottlenose
AMAZON_ACCESS_KEY_ID = "######"
AMAZON_SECRET_KEY = "####"
print "Executing ISBN Amazon Lookup Script -- Please be sure to execute it python amazon.py input.xls output.xls 60(seconds between database queries)"
print "Copying original XLS spreadsheet to new spreadsheet file specified as the second arguement on the command line."
print "Loading Amazon Account information . . "
amazon = bottlenose.Amazon(AMAZON_ACCESS_KEY_ID, AMAZON_SECRET_KEY)
response = amazon.ItemLookup(ItemId="row", ResponseGroup="Offer Summaries", SearchIndex="Books", IdType="ISBN")
shutil.copy2(sys.argv[1], sys.argv[2])
print "Opening copied spreadsheet and beginning ISBN extraction. . ."
wb = xlrd.open_workbook(sys.argv[2])
print "Beginning Amazon lookup for the first ISBN number."
for row in colname(colx=2):
print amazon.ItemLookup(ItemId="row", ResponseGroup="Offer Summaries", SearchIndex="Books", IdType="ISBN")
我知道这有点模糊。我是否应该尝试使用column = colname(colx = 2)之类的东西然后我可以为列中的行做:非常感谢任何帮助或方向。
答案 0 :(得分:2)
在代码中使用colname()
只会返回列的名称(例如,除非您覆盖了名称,否则默认情况下为“C”)。此外,colname的使用超出了工作簿内容的上下文。我认为您希望使用正在加载的工作簿中的特定表,并且从该表中您可能希望引用列的值(在示例的情况下为2) ,这听起来有点正确吗?
wb = xlrd.open_workbook(sys.argv[2])
sheet = wb.sheet_by_index(0)
for row in sheet.col(2):
print amazon.ItemLookup(ItemId="row", ResponseGroup="Offer Summaries", SearchIndex="Books", IdType="ISBN")
虽然我认为看到amazon.ItemLookup()
的来电,您可能希望将row
和不引用到"row"
,因为后者只是一个字符串,前者是来自for循环的名为row
的变量的实际内容。