跳过损坏的jsons python

2024-06-23 03:00:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在从数据库中读取JSON并使用python解析它。在

cur1.execute("Select JSON from t1")
dataJSON = cur1.fetchall()
for row in dataJSON:
 jsonparse = json.loads(row)

问题是我正在读的一些JSON是坏的。 我希望我的程序跳过json,如果它不是一个有效的json,如果它是,那么继续分析它。现在我的程序一旦遇到损坏的json就会崩溃。 T1有几个JSON,我正在逐一阅读。在


Tags: infrom程序数据库jsonforexecuteselect
2条回答

如果您只想静默忽略错误,可以将json.loads包装在try..except块中:

try: jsonparse = json.loads(row)
except: pass

更新

您得到了一个期望的字符串或缓冲区-您需要使用行[0],因为结果将是1元组。。。你想选第一列也是唯一一列。在

如果您确实想检查错误的json

您可以尝试一下/除非:

for row in dataJSON:
    try:
        jsonparse = json.loads(row)
    except Exception as e:
        pass

现在-不要像上面那样使用Exception而是使用当前发生的异常类型,这样就不会捕获与json加载无关的错误。。。(可能是ValueError

相关问题 更多 >

    热门问题