我尝试使用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字典并从那里搜索会更好吗?
答案 0 :(得分:0)
考虑使用枚举:
for index, value in enumerate(data):
if value["existedPrior"] == False:
string.append(data[index]['string'])