def match_entry(self, data, key="title"): if isinstance(data, Media): data = data.as_json() db = JsonDatabase(self.name, self.db_path) # search by key/value pair movies = db.search_by_value(key, data[key]) if len(movies): selected = movies[0] item_id = db.get_item_id(selected) if item_id >= 0: return selected, item_id return None, -1
# keys do not need to be an exact match users = db.search_by_key("birth", fuzzy=True) for user, conf in users: print("matched with confidence", conf) print(user["name"], user["birthday"]) # search by key/value pair users_12years_old = db.search_by_value("age", 12) for user in users_12years_old: assert user["age"] == 12 # fuzzy key/value pair search jon_users = db.search_by_value("name", "jon", fuzzy=True) for user, conf in jon_users: print(user["name"]) print("matched with confidence", conf) # get database item item = {"name": "bobby"} item_id = db.get_item_id(item) if item_id >= 0: db.update_item(item_id, {"name": "don't call me bobby"}) else: print("item not found in database") # clear changes since last commit db.reset()