需要PYTHON JSONtoDICT帮助-看起来PYTHON正在将我的json字典转换解释为一个列表
以下代码给出了错误信息:需要PYTHON JSONtoDICT帮助-看起来PYTHON正在将我的json字典转换解释为一个列表,python,json,dictionary,Python,Json,Dictionary,以下代码给出了错误信息: Traceback (most recent call last): File "AMZGetPendingOrders.py", line 66, in <module> item_list.append(item['SellerSKU']) TypeError: string indices must be integers 我不明白为什么Python认为这是一个列表而不是一个字典。当我打印id\u list时,它看起来像一本字典(大括号、
Traceback (most recent call last): File "AMZGetPendingOrders.py", line 66, in <module>
item_list.append(item['SellerSKU']) TypeError: string indices must be integers
我不明白为什么Python认为这是一个列表而不是一个字典。当我打印id\u list
时,它看起来像一本字典(大括号、单引号、冒号等)
打印(数据1)
显示我的字典
{
'ListOrderItemsResponse':{
'@xmlns':'https://mws.amazonservices.com/Orders/201 3-09-01',
'ListOrderItemsResult':{
'OrderItems':{
'OrderItem':{
'QuantityOrdered ':'1',
'Title':'Delta Rothko Rolling Bicycle Stand',
'ConditionId':'New',
'Is Gift':'false',
'ASIN':'B00XXXXTIK',
'SellerSKU':'9934638',
'OrderItemId':'49 624373726506',
'ProductInfo':{
'NumberOfItems':'1'
},
'QuantityShipped':'0',
'C onditionSubtypeId':'New'
}
},
'AmazonOrderId':'112-9XXXXXX-XXXXXXX'
},
'ResponseM etadata':{
'RequestId':'8XXXXX8-0866-44a4-96f5-XXXXXXXXXXXX'
}
}
}
有什么想法吗?因为您正在迭代dict中的每个键值:
{'QuantityOrdered ': '1', 'Title': 'Delta Rothko Rolling Bicycle Stand', 'ConditionId': 'New', 'Is Gift': 'false', 'ASIN': 'B00XXXXTIK', 'SellerSKU': '9934638', 'OrderItemId': '49 624373726506', 'ProductInfo': {'NumberOfItems': '1'}, 'QuantityShipped': '0', 'C onditionSubtypeId': 'New'}
所以,项中的第一个值将是“QuantityOrdered”,您试图访问这个字符串,就像它是字典一样
您只需执行以下操作:
id_list.append(data1['ListOrderItemsResponse']['ListOrderItemsResult']['OrderItems']['OrderItem']['SellerSKU']))
避免字典中的for循环我猜您正在尝试迭代OrderItems并查找它们的SellerSKU值
{
'ListOrderItemsResponse':{
'@xmlns':'https://mws.amazonservices.com/Orders/201 3-09-01',
'ListOrderItemsResult':{
'OrderItems':{
'OrderItem':{
'QuantityOrdered ':'1',
'Title':'Delta Rothko Rolling Bicycle Stand',
'ConditionId':'New',
'Is Gift':'false',
'ASIN':'B00XXXXTIK',
'SellerSKU':'9934638',
'OrderItemId':'49 624373726506',
'ProductInfo':{
'NumberOfItems':'1'
},
'QuantityShipped':'0',
'C onditionSubtypeId':'New'
}
},
'AmazonOrderId':'112-9XXXXXX-XXXXXXX'
},
'ResponseM etadata':{
'RequestId':'8XXXXX8-0866-44a4-96f5-XXXXXXXXXXXX'
}
}
}
for item in data1['ListOrderItemsResponse']['ListOrderItemsResult']['OrderItems']:
item_list.append(item['SellerSKU'])
成功了!它给了我每个订单的销售价格。现在,如果我可以问一个后续问题-你知道我将如何提取SellerSKU和QuantityOrdered,它们之间用逗号分隔吗?类似地,data1['ListOrderItemsResponse']['ListOrderItemsResult']['OrderItems']['OrderItem']['QuantityOrdered'],请注意在键“QuantityOrdered”的末尾有空格,访问时不要忘记包含空格,如果答案对你有用,你介意把它标记为正确吗:)不幸的是,这给了我同样的错误信息。不过,上面的单行解决方案确实有效。如果项['SellerSKU']看起来像以下项的重复项,请尝试项_list.append(str(项['SellerSKU']):