首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将json作为函数的条目参数传递

如何将json作为函数的条目参数传递
EN

Stack Overflow用户
提问于 2022-08-10 10:28:55
回答 1查看 52关注 0票数 0

我需要将一个json对象作为一个条目参数传递给我的函数。该函数可以读取json并提取所需的数据。

这是一项功能:

代码语言:javascript
复制
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()

代码语言:javascript
复制
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(),您可以转换,但是它说是字符串,而不是字典。

EN

回答 1

Stack Overflow用户

发布于 2022-08-10 11:13:41

代码中存在多个问题:

  1. 变量carrito被定义为str,因此json.loads将返回str。将其定义为一个dict.
  2. The,以便json.loads返回一个json.loads变量carrito不是一个列表,这样user = data[i]就不能工作了。我认为您试图将dict.
  3. arraycarrito创建为leerJSON中没有定义的list。我想你想把lista_nombres_y_usuarios

还给我

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73304658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档