Следующий скрипт Python должен проверять количество десятичных знаков в записях. В схеме я пытаюсь определить, что она имеет 3 десятичных знака, используя «multipleOf»: 0,001.
У меня есть запись с 5 десятичными знаками: «scores»: [1.12345]
Она должна сообщить ошибка, но она возвращается:
Validation ok
scores
0 1.12345
Как это исправить?
import jsonschema
import pandas as pd
schema = {
"type": "array",
"properties": {"scores": {"type": "number", "multipleOf": 0.001}},
}
df = pd.DataFrame(
{
"scores": [1.12345],
}
)
validator = jsonschema.Draft202012Validator(schema)
try:
validator.validate(instance=df.to_dict("records"))
print("Validation ok")
except jsonschema.ValidationError as e:
print(f"Validation error: {e.message}")
print(df)
Подробнее здесь: https://stackoverflow.com/questions/783 ... mal-number