def get_place_by_field(self, field_name, field_value):
     if field_name not in [FIELD_NAME, FIELD_PLACE_ID]:
         raise ValueError('incorrect field name')
     cursor = self.db.cursor()
     sql = f'SELECT place_id, name, category, location FROM places WHERE {field_name} = %s'
     val = (field_value,)
     cursor.execute(sql, val)
     el = cursor.fetchone()
     if el is None:
         raise MysqlPlaceDaoError
     return Place(id=el[0], name=el[1], category=el[2], location=el[3])
 def list_places(self):
     cursor = self.db.cursor()
     sql = 'SELECT place_id, name, category, location from places ORDER BY name ASC'
     cursor.execute(sql)
     reslist = cursor.fetchall()
     return [Place(id=el[0], name=el[1], category=el[2], location=el[3]) for el in reslist or []]