Если вы ищете что-то быстрое для очистки данных json для ограниченных полей, например current_location, вы можете попробовать что-то вроде следующего:
def sanitize(profile):
profile['current_location'] = ', '.join([val.strip() for val in profile['current_location'].split(',')])
return profile
profile = sanitize(profile)
Идея в том, что вы бы написали код для очисткикаждый бит в этой функции и отправьте ей свое API или исключение в случае недопустимости и т. д.
Для более надежной проверки вы можете использовать пакет jsonschema
. Подробнее здесь .
С помощью этого пакета вы можете более гибко проверять строки и схему json.
Пример взят из пакета readme:
from jsonschema import validate
# A sample schema, like what we'd get from json.load()
schema = {
"type" : "object",
"properties" : {
"url" : {"type" : "string", "format":"uri"},
"current_location" : {"type" : "string", "maxLength":25, "pattern": "your_regex_pattern"},
},
}
# If no exception is raised by validate(), the instance is valid.
validate(instance=profile, schema=schema)
Вы можете найти более подробную информацию и типы доступных проверок для строк здесь .