首页 > 解决方案 > JSONDecodeError 跳过

问题描述

我正在尝试在其中传递函数的数据框中获取一个新列,这是一个工作代码。(该功能是一个 API 抓取和 idk 如何 1)对其进行编辑或 2)对其进行故障排除)

df = pd.DataFrame(data = myarray)
df.columns=["A"]
df['B']= 'US'

array_thing=[]

for i in range(len(df)):
    array_thing.append(mycoolfunction(df.iloc[i, 0], df.iloc[i, 1]))
df['new']=array_thing

df

现在我需要跳过某些行中出现的错误: JSONDecodeError: Expecting value: line 1 column 1 (char 0)

我已经尝试过查看其他 stackoverflow 和所有可能的“尝试”“继续”代码,我对该怎么做感到很困惑。

我尝试了以下方法:

try:
    for i in range(len(df)):
        array_thing.append(mycoolfunction(df.iloc[i, 0], df.iloc[i, 1]))
        df['new']=array_thing
    except JSONDecodeError as e:
        continue

for i in range(len(df)):
    try:
        array_thing.append(mycoolfunction(df.iloc[i, 0], df.iloc[i, 1]))
        df['new']=array_thing
    except <JSONDecodeError: Expecting value: line 1 column 1 (char 0)> as e:
        print('error!')
df

它都不起作用..我只需要它跳过错误并且在该行中不产生任何内容或者只是说错误并继续。

数据框中这样的东西:| 一个| 乙| json码| |:---- |:-----:| -----:| | A123| 美国 | 错误|

然后继续为所有工作的人显示 json。

谢谢你!!

标签: pythonjsondataframeerror-handling

解决方案


如果您想处理不同的错误,请尝试:

import traceback

for i in range(len(df)):
    try:
        array_thing.append(mycoolfunction(df.iloc[i, 0], df.iloc[i, 1]))
        df['new']=array_thing
    except Exception as e:
        print(traceback.format_exc())
        print("your traceback", e)

或者,如果您只想忽略任何错误,只需:

...   
except:
        pass

推荐阅读