python - 如果在python中发生错误,则处理异常

标签 python json for-loop error-handling exception-handling

尝试解析JSON字符串时,我收到了一些记录的错误,但无法处理该异常,因此,如果解析JSON字符串时发生错误,请跳过该记录并移至下一条记录。

这是代码片段。

ID=[]
json_string=[]
for row in cursor.fetchall():
 ID.append(row[0]) 
 json_string.append(row[1])
address_fields = {
'intersection': [],        
'political': [],        
'country': [], 
}
dumpData = json.dumps(json_string)
json_all = json.loads(dumpData)

id_index = 0
for json_str in json_all:
     address_fields = {
      'intersection': [],        
      'political': [],        
      'country': [], 
      }
     try:
      json_results = json.loads(json_str)
     except IndexError:
      continue


     if isinstance(json_results,dict):
         first_address_components = json_results['results'][0]['address_components']
     else:
         first_address_components = json_results[0]['address_components']
     for item in first_address_components:
         for field_key in address_fields.keys():
            if field_key in item['types']:
               address_fields[field_key].append(item['long_name'])

我首先从sql表中获取数据并存储take JSON_string及其ID,然后尝试解析JSON字符串并更新sql表中的内容,因此对于那些我遇到错误的JSON字符串,我想跳过该行并移至下一条记录。
但这还没有完成。不过,我无法处理异常。
相同的任何帮助将是有帮助的。

谢谢。

最佳答案

代替这个

try:
  json_results = json.loads(json_str)
except IndexError:
  continue

做这个。
try:
    json_results = json.loads(json_str)
except:
     pass

关于python - 如果在python中发生错误,则处理异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46928696/

相关文章:

python - Panda AssertionError 列已传递,传递的数据有 2 列

python - 使用 django rest framework api 更新用户配置文件

node.js - 使用 Vue 处理来自 Express API 的错误

javascript - 从谷歌地图 api url 获取空 json

jquery - 如何在 json 属性中执行函数?

python - 需要超过 1 个值才能解压

python - Django:如何从QuerySet获取参数

python - 从另一个 DataFrame 的列中的 JSON URL 生成 Dataframe

c - 你如何使用 for(;;) 循环

python - 在python中调用不带括号的方法