diff --git a/jsonschema/_utils.py b/jsonschema/_utils.py index 5b245a34a..9564d0241 100644 --- a/jsonschema/_utils.py +++ b/jsonschema/_utils.py @@ -101,7 +101,10 @@ def find_additional_properties(instance, schema): patterns = "|".join(schema.get("patternProperties", {})) for property in instance: if property not in properties: - if patterns and re.search(patterns, property): + prop = property + if not isinstance(prop, str): + prop = str(property) + if patterns and re.search(patterns, prop): continue yield property diff --git a/jsonschema/_validators.py b/jsonschema/_validators.py index d0baec812..1c8bb72a3 100644 --- a/jsonschema/_validators.py +++ b/jsonschema/_validators.py @@ -11,7 +11,7 @@ def patternProperties(validator, patternProperties, instance, schema): for pattern, subschema in iteritems(patternProperties): for k, v in iteritems(instance): - if re.search(pattern, k): + if re.search(pattern, str(k)): for error in validator.descend( v, subschema, path=k, schema_path=pattern, ):