Не уверен, что это тот тип вопросов, который позволяет SO, но лучше извините, чем безопасный:
У меня есть скрипт, который должен проверить, является ли файл JSON, и заменить его на JSON версия, если это не так. Сценарий должен быть быстрым. Если I go с решением о грубой силе:
try:
json.loads(file)
except ValueError:
replace(file)
... это на порядок медленнее. Теперь в моей конкретной ситуации c можно получить ложные срабатывания, поэтому я решил go с несовершенным решением ради скорости. Например:
if file.firstletter in ["{", "["]:
replace(file)
(кстати, это псевдокод. Мой вопрос - agnosti языка c)
Это будет работать в большинстве случаев, так как большинство файлов не JSON как правило, начинаются без скобок.
Другой пример, который я могу вспомнить, - заканчивается ли файл скобками.
Каковы другие способы эффективной оценки того, содержит ли файл JSON?