哪些代理可以有效地估计文件是否包含JSON?

哪些代理可以有效地估计文件是否包含JSON?,json,performance,validation,Json,Performance,Validation,不确定这是否是允许的问题,但“对不起”总比“安全”好: 我有一个脚本,它应该检查一个文件是否是JSON,如果不是JSON,就用JSON版本替换它。剧本应该很快。如果我采用暴力解决方案: try: json.loads(file) except ValueError: replace(file) 。。。这是一个数量级太慢了。现在在我的具体情况下,有一些误报是可以的,所以为了速度,我决定使用一个不完美的解决方案。例如: if file.firstletter in ["{", "[

不确定这是否是允许的问题,但“对不起”总比“安全”好:

我有一个脚本,它应该检查一个文件是否是JSON,如果不是JSON,就用JSON版本替换它。剧本应该很快。如果我采用暴力解决方案:

try:
    json.loads(file)
except ValueError:
    replace(file)
。。。这是一个数量级太慢了。现在在我的具体情况下,有一些误报是可以的,所以为了速度,我决定使用一个不完美的解决方案。例如:

if file.firstletter in ["{", "["]:
    replace(file)
(fwiw这是伪代码。我的问题是语言不可知论)

这在大多数情况下都会起作用,因为大多数非JSON文件的开头往往没有括号

我能想到的另一个例子是文件是否以括号结尾


还有哪些方法可以有效地估计文件是否包含JSON?

您可以查看文件扩展名(例如
*.JSON

除此之外,检查起始/结束字符(
{
[
)是快速排除非JSON文件的一个很好的启发式方法。但它可能会导致误报,因此第二步,您仍应尝试将文件解析为JSON,以真正了解它是否为JSON