Страницы

Поиск по вопросам

среда, 26 февраля 2020 г.

Как проверить наличие элемента в JSON ? Python

#python_3x #json


Есть файл db.json

Его содержание:

[
  {
    "user": "981"
  },
  {
    "user": "859"
  },
  {
    "user": "237"
  }
]


Например нужно проверить есть ли "user": "859" в db.json

Как делаю это я:

import json

def json_read(file_name):
    try:
        json_data = json.load(open(file_name, 'r', encoding="cp1251"))
    except:
        json_data = []
    return json_data

data = json_read("db.json")
user_in_db = "859"

for user in data:
    if user_in_db == user['user']:
        print("yes")
    else:
        print("No")


Но я думаю в случае большого количества пользователей в db.json данный способ менее
удобен. Есть ли какой то более удобный и быстрый способ сделать это ? 
    


Ответы

Ответ 1



Решение в лоб: In [13]: db = [ ...: { ...: "user": "981" ...: }, ...: { ...: "user": "859" ...: }, ...: { ...: "user": "237" ...: } ...: ] In [14]: {'user': '859'} in db Out[14]: True Или: In [15]: any(x['user'] == '859' for x in db) Out[15]: True

Ответ 2



data = json.load(open('db.json', 'r')) dictValueKey = dict([ [d.get(k),k] for k in d for d in data]) print("Yes" if dd.get("859")=="user" else "No") Yes print("Yes" if dd.get("111")=="user" else "No") No print("Yes" if dd.get("859")=="userNo" else "No") No

Комментариев нет:

Отправить комментарий