我需要将一个json对象作为一个条目参数传递给我的函数。该函数可以读取json并提取所需的数据。
这是一项功能:
def leerJSON(carrito):
    data = json.loads(carrito)
    
    lista_nombres_y_usuarios = []
    for i in range(1):
        #data = json.loads(data1)
        user = data[i]
        nombre = user['name'] 
        username = user['username']
        email = user['email']
        lista_nombres_y_usuarios.append([nombre, username])
    return(nombre, username, email, array)这是女巫的脚本,我称之为函数leerJSON()
carrito = '''{
    "id": 1,
    "name": "Leanne Graham",
    "username": "Bret",
    "email": "Sincere@april.biz",
    "phone": "1-770-736-8031 x56442",
    "website": "hildegard.org",
}'''
carritojson= json.dumps(carrito, indent = 4) # Conversión a json
[name, username, email, array] = leerJSON(carritojson)
print(name)
print(username)
print(email)
print(array)
Traceback (most recent call last):
  File "/home/idein/Escritorio/Factura/prueba.py", line 12, in <module>
    [name, username, email, array] = leerJSON(carritojson)
  File "/home/idein/Escritorio/Factura/funcionLecturaJSON.py", line 36, in leerJSON
    nombre = user['name'] 
TypeError: string indices must be integers正如您所看到的,它说对象没有文本作为属性,这是因为carrito是字典而不是json。我怎么能转换它呢?因为我已经阅读过json.dumps(),您可以转换,但是它说是字符串,而不是字典。
发布于 2022-08-10 11:13:41
代码中存在多个问题:
carrito被定义为str,因此json.loads将返回str。将其定义为一个dict.json.loads返回一个json.loads变量carrito不是一个列表,这样user = data[i]就不能工作了。我认为您试图将dict.array的carrito创建为leerJSON中没有定义的list。我想你想把lista_nombres_y_usuarios还给我
https://stackoverflow.com/questions/73304658
复制相似问题