我正在尝试使用Boto和Get_Report()获取报告。我有一个有效的报告ID,似乎在正确调用python时遇到问题。调用需要使用变量ReportId,而我一直在尝试各种使其接受ID的方法。
from boto.mws.connection import MWSConnection
import sys, getopt
def main(argv):
MarketPlaceID = 'a'
Merchant = 'a'
AccessKeyID = 'a'
SecretKey = 'a'
program_name = sys.argv[0]
MarketPlaceID = sys.argv[1]
Merchant = sys.argv[2]
AccessKeyID = sys.argv[3]
SecretKey = sys.argv[4]
print 'MarketplaceID is ', MarketPlaceID
print 'Merchant is ', Merchant
print 'AccessKey is ', AccessKeyID
print 'Secret key is ', SecretKey
conn = MWSConnection(AccessKeyID,SecretKey)
conn.SellerId = Merchant
conn.Merchant = Merchant
conn.MarketplaceId = MarketPlaceID
myId = '1432456045'
# sample one
conn.get_report(ReportId=myId)
# sample two
conn.get_report(myId)
# sample three
conn.get_report(myId,)
# sample four
conn.get_report(1432456045)
# sample five
conn.get_report('1432456045')
if __name__ == "__main__":
main(sys.argv1:)
使用这五个变体中的每一个,我都会得到相同的关键错误:KeyError:“ GetReport需要R + e + p + o + r + t + I + d参数”。本示例将采用四个参数(MarketPlaceID,Merchant,AccessKeyID和SecretKey),并尝试调用get_report。 ID号是有效报告,我已经成功使用了暂存器并下载了csv文件。
目的是使用清单文件的值来调用get_report()调用。 boto中的调用采用整数参数。我尝试了各种版本,包括整数,字符串中的整数以及一个整数列表。这些失败的原因均是相同的访问密钥错误。
我知道上面的五个样本无法正常工作。有人成功获得了Get_report调用吗?您能指出我做错了什么吗?
谢谢
最佳答案
我遇到了同样的问题。问题实际上出在connection.py中。
@requires('ReportId')
应该读
@requires(['ReportId'])
希望这可以帮助!