Actualmente estoy trabajando en python y obtengo una respuesta json de la API. pero después de hacer todo lo posible para obtener datos de json, siempre recibo este error, TypeError: los índices de cadena deben ser números enteros, no str aquí está mi archivo JSON que recibí,
{ "from": 1, "to": 10, "currentPage": 1, "total": 72, "totalPages": 8, "queryTime": "0.023", "totalTime": "0.059", "partial": false, "canonicalUrl": "/v1/products(categoryPath.name=All Flat-Panel TVs)?show=sku,name,salePrice&format=json&apiKey=APIKEY", "products": [{ "sku": 3813048, "name": "Samsung - 32\" Class (31-1/2\" Diag.) - LED - 1080p - HDTV - Black", "salePrice": 229.99 }, { "sku": 4340402, "name": "Samsung - 43\" Class (42.5\" Diag.) - LED - 1080p - Smart - HDTV - Black", "salePrice": 429.99 }, { "sku": 4380083, "name": "Samsung - 32\" Class (31.5\" Diag.) - LED - 1080p - Smart - HDTV - Silver", "salePrice": 299.99 }, { "sku": 4405201, "name": "Samsung - 50\" Class (49.5\" Diag.) - LED - 1080p - Smart - HDTV - Black", "salePrice": 499.99 }, { "sku": 4559300, "name": "VIZIO - 39\" Class (38.5\" Diag.) - LED - 720p - Smart - HDTV - Black", "salePrice": 269.99 }, { "sku": 4562031, "name": "Samsung - 58\" Class (57.5\" Diag.) - LED - 1080p - Smart - HDTV - Black", "salePrice": 649.99 }, { "sku": 4569901, "name": "LG - 24\" Class (23.6\" Diag.) - LED - 720p - HDTV - Black", "salePrice": 84.99 }, { "sku": 4613600, "name": "Samsung - 32\" Class (31.5\" Diag.) - LED - 720p - Smart - HDTV - Black", "salePrice": 219.99 }, { "sku": 4629257, "name": "Samsung - 32\" Class (31.5\" Diag.) - LED - 720p - HDTV - Black", "salePrice": 199.99 }, { "sku": 4673800, "name": "Insignia™ - 24\" Class (23.6\" Diag.) - LED -720p - Smart - Roku TV - Black", "salePrice": 139.99 }] }y lo he intentado de las siguientes maneras,
for item in result["products"]: print(item["sku"]) print(item["name"]) print(item["salePrice"])y
for item in result: print(item["products"]["sku"]) print(item["products"]["name"]) print(item["products"]["salePrice"])¿Alguien puede decirme por favor dónde me equivoco? ¿Puede compartir algunos tutoriales donde pueda entender cómo decodificar json correctamente? gracias de antemano
Debe faltar para analizar este json. Analízalo primero y luego haz lo que estás haciendo.
import json results = json.loads(results) for item in results['products']: print(item["sku"])