Python 类型错误:';口授';对象不可下标

Python 类型错误:';口授';对象不可下标,python,amazon-mws,Python,Amazon Mws,我犯了这个错误,我似乎看不出我需要朝什么方向去解决这个问题 TypeError: 'DictWrapper' object is not subscriptable 我在尝试使用以下python代码从amazon卖家api的查找结果中提取一些数据时出错: products_api = mws.Products(access_key, secret_key, seller_id, region='US') products = products_api.list_matching_produ

我犯了这个错误,我似乎看不出我需要朝什么方向去解决这个问题

 TypeError: 'DictWrapper' object is not subscriptable 
我在尝试使用以下python代码从amazon卖家api的查找结果中提取一些数据时出错:

products_api = mws.Products(access_key, secret_key, seller_id, region='US')
products = products_api.list_matching_products(marketplaceid=marketplace_usa, query='XAZ')

pp = pprint.PrettyPrinter(indent=1)
pp.pprint (vars(products))  # prints info below which contains the data I need
我想我可以使用下面的命令开始搜索结果,但我得到了上面的错误,谷歌没有给我指明解决问题的方向。最终,我想从结果中提取“品牌”和其他一些字段

a=products['_mydict']


查看库中
DictWrapper
的实现,作为响应接收的对象不是字典,不应该用作字典。这也是错误消息的状态

但是,该对象有一个属性
parsed
,它以字典的格式返回响应。这就是你应该使用的

products = products_api.list_matching_products(marketplaceid=marketplace_usa, query='XAZ')
products_as_dict = products.parsed
products_as_dict['_mydict']
该对象还包含一个提供原始XML输出的属性,以备需要

products_as_xml = products.original

这条格言真的很复杂。我减少了一点,但这也应该对你有用:

print(products['_mydict']['ListMatchingProductsResponse']['ListMatchingProductsResult']['Products']['Product'][0]['AttributeSets']['ItemAttributes']['Brand'])
我认为问题在于嵌套列表。在我的示例中,我只使用了第一项[0]。也许您需要在这里进行迭代

它打印:

{'value': 'Crocs'}

我认为这可能是问题所在,并会在电脑前测试。你是怎么决定的?我只是假设它是一本字典,当我打印它的时候,结果看起来就像一本字典。它是否像错误说明它不可编写脚本那样简单?@personal该名称表明该对象可能是一个字典,但错误消息中另有说明。这没有多大意义,因此唯一需要确保的是咨询实现。
{'value': 'Crocs'}