【问题标题】:Lectura de Json en Pyton讲课 de Json en Python
【发布时间】:2020-10-13 02:45:19
【问题描述】:

我需要读取一个 JSON 文件,我需要获取每个客户的属性并将它们输入到一个列表中,但是如果我使用 print (data.get ('products') [0]) 打印它会打印客户 80849599 和客户 1022734737 的产品

如何只打印客户 1 的信息?

[{
        "cliente": "80849599",
        "productos": [{
                "nombre": "Chocolatinas Cohete",
                "cantidad": 3,
                "precio unitario": 300
            },
            {
                "nombre": "Mora",
                "cantidad": 1,
                "precio unitario": 1000
            },
            {
                "nombre": "Pan de Maiz",
                "cantidad": 5,
                "precio unitario": 300
            }
        ]
    },
    {
        "cliente": "1022734737",
        "productos": [{
                "nombre": "Televisor",
                "cantidad": 2,
                "precio unitario": 1500000
            },
            {
                "nombre": "Teatro en Casa",
                "cantidad": 1,
                "precio unitario": 450000
            }
        ]
    }
]

【问题讨论】:

  • 请提供预期的MRE。显示中间结果与预期结果的偏差。我们应该能够将您的代码块粘贴到文件中,运行它并重现您的问题。您的帖子中没有结构data。您提供的数据没有密钥"products"。您需要通过客户 ID 号找到所需的客户,并打印仅 dict 的产品信息表。执行此操作的代码在 Stack Overflow 和其他在线其他地方的许多现有资源中都有介绍。

标签: python json python-3.x


【解决方案1】:

简单的使用方法:

print(myjson[0]['productos'])

否则尝试使用这样的客户编号进行过滤:

myjson = [{
        "cliente": "80849599",
        "productos": [{
                "nombre": "Chocolatinas Cohete",
                "cantidad": 3,
                "precio unitario": 300
            },
            {
                "nombre": "Mora",
                "cantidad": 1,
                "precio unitario": 1000
            },
            {
                "nombre": "Pan de Maiz",
                "cantidad": 5,
                "precio unitario": 300
            }
        ]
    },
    {
        "cliente": "1022734737",
        "productos": [{
                "nombre": "Televisor",
                "cantidad": 2,
                "precio unitario": 1500000
            },
            {
                "nombre": "Teatro en Casa",
                "cantidad": 1,
                "precio unitario": 450000
            }
        ]
    }
]

for x in myjson:
  if x['cliente'] == "80849599":
    print(x['productos'])

【讨论】:

    【解决方案2】:

    假设我们将上面的 json 文件加载为“f”

    我还假设“客户 1”是第一个“客户”

    import json
    
    print(f[0]["cliente"]) #prints 80849599
    print(f[0]["productos"][0]["nombre"]) #prints "Chocolatinas Cohete"
    

    记得有一个列表

    【讨论】:

      【解决方案3】:

      要在 Python 中使用 JSON,您需要库 json

      例子:

      import json
      
      jsonData = '[{"cliente":"80849599","productos":[{"nombre":"Chocolatinas Cohete","cantidad":3,"precio unitario":300},{"nombre":"Mora","cantidad":1,"precio unitario":1000},{"nombre":"Pan de Maiz","cantidad":5,"precio unitario":300}]},{"cliente":"1022734737","productos":[{"nombre":"Televisor","cantidad":2,"precio unitario":1500000},{"nombre":"Teatro en Casa","cantidad":1,"precio unitario":450000}]}]'
      
      # JSON to Python:
      pythonData = json.loads(jsonData)
      
      # Getting data
      print(pythonData[0]["productos"][0]['nombre'])
      

      此脚本返回:Chocolalatinas Cohete。

      More details

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-04-16
        • 2016-06-12
        • 2022-12-05
        • 2023-04-02
        • 1970-01-01
        • 2011-06-14
        • 1970-01-01
        相关资源
        最近更新 更多