在json中搜索特定值

时间:2018-04-04 03:14:34

标签: python json python-3.x

我尝试使用Python 3在json中搜索特定变量。结果通常看起来像这样。

[
  {
    "string": "00002000",
    "existedPrior": true
  },
  {
    "string": "00002001",
    "existedPrior": false
  },
  {
    "string": "00002002",
    "existedPrior": true
  },
  {
    "string": "00002003",
    "existedPrior": true
  },
  {
    "string": "00002004",
    "existedPrior": false
  }
]

这个脚本的目标是搜索这些值的位置" existedPrior"如果为false,则从该值中获取字符串并将其插入到数组中。然后我可以获取数组的值,并针对更多数据重新查询它们。

从我收集的内容来看,这与我希望做的事情很接近,但实际上并没有让我到那里。

import json
import requests

q = 'https://website.com/api/var'
r = requests.get(url=q)

strings = []

data = r.json()
i = 0

for item in data:
    if item['existedPrior'] == 'false':
        i += 1
        strings.append(item['string'])
        print(item['string'])
    else:
        break

print("New additions: ", i)

我的理解是json和python没有共享相同的#34;定义"布尔值,这会导致麻烦。我在stackoverflow的其他地方读到了如何处理这个问题,但它涉及到json.dumps和json.loads以及我不是100%确定需要的各种杂乱的比特。

顺便说一句,将json转换为python字典并从那里搜索会更好吗?

1 个答案:

答案 0 :(得分:0)

考虑使用枚举:

for index, value in enumerate(data):
    if value["existedPrior"] == False:
        string.append(data[index]['string'])