我目前正在尝试从发布请求响应中解析一些数据,并且不断收到此错误:“ TypeError:列表索引必须是整数或切片,而不是str”
Python代码
import requests import json count = 0 params = {'var1':'40', 'value':'143', 'itm':'1', 'param':'1'} req = 'https://www.api.com/api/search' data = requests.post(req, data = params).json() print (data['result']['results']['name'])
JSON回应
{ "result":{ "count":1, "totalCount":1, "offset":0, "queryTime":232, "results":[ { "rating":"4.0", "productId":{ "upc":"143", "ItemId":"143", "productId":"143-prd" }, "name":"Product", "catagory":{ "name":"", "CataId":1 }, "images":{ "thumbnailUrl":"http://api.com/img/static/product-image-50-50.png", "largeUrl":"http://api.com/img/static/product-image-500-500.png" }, "price":{ "price":13, "isRealTime":true, "currencyUnit":"USD" }, "location":{ "unit":[], "detailed":[] }, "inventory":{ "quantity":1, "status":"In Stock", "isRealTime":true }, "ratings":{ "rating":"3.1875", "ratingUrl":"http://api.com/3_1875.gif" }, "reviews":{ "reviewCount":"2" }, "isItem":true, "lUrl":"/l/Product-Name" } ], "performance":{ "enrichment":{ } }, "query":{ "originalQuery":"143", "actualQuery":"143", "suggestedQueries":[ ] }, "algo":"jarvis", "blacklist":false, "cluster":{ "apiserver":{ "hostname":"site.api.com", "pluginVersion":"1.0" }, "searchengine":{ "hostname":"srch.site.api.com" } } } }
我做了类似的代码,但这是一个get请求,一切都很好。
data['result']['results']是一个数组,因此您['name']不需要int,可以在[0]after之后添加['results'],它应该可以工作。然后,您可以在中引用对象内的键results。
data['result']['results']
['name']
[0]
['results']
results