Check if entry with same surface and reaction is allready written
        to database file

        Parameters
        ----------
        chemcial_composition: str
        reactants: dict
        products: dict

        Returns id or None

def check_reaction_on_surface(self, chemical_composition, reactants,
                                  products):
        """
        Check if entry with same surface and reaction is allready written
        to database file

        Parameters
        ----------
        chemcial_composition: str
        reactants: dict
        products: dict

        Returns id or None
        """
        con = self.connection or self._connect()
        self._initialize(con)
        cur = con.cursor()
        statement = """SELECT reaction.id FROM reaction WHERE
        reaction.chemical_composition='{}' and reaction.reactants='{}'
        and reaction.products='{}';""".format(chemical_composition,
                                              json.dumps(reactants),
                                              json.dumps(products))

        cur.execute(statement)
        rows = cur.fetchall()
        if len(rows) > 0:
            id = rows[0][0]
        else:
            id = None
        return id