【问题标题】:How to get Json key name if its value is equal to "x" - Python如果它的值等于\"x\",如何获取 Json 键名 - Python
【发布时间】:2022-11-22 07:49:04
【问题描述】:

我正在做一个python实践,它是关于尝试检查json文件中产品的可用性,条件是如果Key等于1,则表示产品可用,因此如果产品可用,则打印键名。 Json 格式如下所示:

product={"FooBox": "1", "ZeroB": "0", "Birk": "1", "pjy": "0", "dimbo": "1"}

我想得到如下内容: 根据预览文件,如果 Key 值为“1”,则返回 Key Name,如下所示:

"Foobox","Birk","dimbo"

有人可以帮我解释一下如何使它正常工作吗?

我尝试使用类似的东西:

product='["FooBox": "1", "ZeroB": "0", "Birk": "1", "pjy": "0", "dimbo": "1"]'
for x in product:
   if x=="1":
      print(x)
   else:
      print("Not Available")

但是输出只是数字“1”而不是键名,这正是我所需要的。

【问题讨论】:

  • 顺便说一句,因为你有product = '...',它是一个字符串,而不是字典。

标签: python json


【解决方案1】:

在您尝试的解决方案中,product 是一个字符串,而不是您在第一个 sn-p 中显示的字典。

即使它是一本字典,for x in product: 也会将 x 设置为键,而不是值。

使用 product.items() 迭代字典的键和值。然后您可以检查值并收集密钥。

product={"FooBox": "1", "ZeroB": "0", "Birk": "1", "pjy": "0", "dimbo": "1"}

available = [name for name, avail in product.items() if avail == "1"]
print(available)

【讨论】:

    【解决方案2】:

    stuff = [k for k,v in product.items() if v=="1"] 打印(东西)

    【讨论】:

      【解决方案3】:
      for key,value in product.items():
          if value == "1":
              print(key)
      

      【讨论】:

        猜你喜欢
        • 2020-11-03
        • 2013-03-31
        • 1970-01-01
        • 2021-08-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-03
        相关资源
        最近更新 更多