我在我的程序中使用JSON5模块。该模块主要与标准 Python JSON 模块的 API 兼容——它只接受 JSON5 语法而不是标准 JSON。
当脚本分析从其输入文件中读取的 JSON 结构时,可能存在高级错误,即不是 JSON 语法错误。据我了解,此时输入位置丢失了,但是为用户提供行/列号会很有帮助。
我已经找到了这篇 SO 文章,但似乎没有解决涉及标准 JSON 模块的类似问题。
也许有人知道API提供的一些钩子机制是否可以用于在JSON“编译”时将行/列数据插入到生成的数据结构中?
import json5
data = json5.load(jsonfile) # add some foo here…
if data["key1“] != 123:
print(f'wrong value for key1 at line {data["key1“].__line__}, col {data["key1“].__col__}')