Python 为什么在将数据写入csv时会收到密钥错误?如何创建异常错误处理?

Python 为什么在将数据写入csv时会收到密钥错误?如何创建异常错误处理?,python,json,pandas,csv,Python,Json,Pandas,Csv,我是python新手,正在尝试理解错误处理 我的剧本- import pandas as pd import os import json import time def process_data(json_data, output_path): print(f"Processing: {output_path.stem}") cols = ["transcript", "confidence"] dfd

我是python新手,正在尝试理解错误处理

我的剧本-

import pandas as pd
import os
import json
import time

def process_data(json_data, output_path):

    print(f"Processing: {output_path.stem}")

    cols = ["transcript", "confidence"]

    dfdata = [[t[cols[0]], t[cols[1]]] for r in json_data.get('results') for t in r.get("alternatives")]

    df0 = pd.DataFrame(data = dfdata, columns = cols)

    df1 = pd.DataFrame(json_data.get("speaker_labels")).drop(["final", "confidence"], axis=1)


    # test3 = pd.concat([df0, df1], axis=1)
    test3 = pd.merge(df0, df1, left_index = True, right_index = True)
但是,我收到一个错误-

  File "<ipython-input-5-b2f6a9044995>", line 150, in <module>
    main()

  File "<ipython-input-5-b2f6a9044995>", line 141, in main
    process_data(*pkg)

  File "<ipython-input-5-b2f6a9044995>", line 59, in process_data
    dfdata = [[t[cols[0]], t[cols[1]]] for r in json_data.get('results') for t in r.get("alternatives")]

  File "<ipython-input-5-b2f6a9044995>", line 59, in <listcomp>
    dfdata = [[t[cols[0]], t[cols[1]]] for r in json_data.get('results') for t in r.get("alternatives")]

KeyError: 'confidence'
文件“”,第150行,在
main()
文件“”,第141行,主
过程数据(*pkg)
文件“”,第59行,进程中数据
dfdata=[[t[cols[0]],t[cols[1]]]表示json中的r_data.get('results'),表示r.get中的t(“备选方案”)]
文件“”,第59行,在
dfdata=[[t[cols[0]],t[cols[1]]]表示json中的r_data.get('results'),表示r.get中的t(“备选方案”)]
关键错误:“信心”

我需要在代码中更改或添加什么来避免此错误?或者跳过此错误

因为
r.get(“备选方案”)
中的一个或多个记录没有
confidence
键-因此出现
KeyError:'confidence'
异常,所以您会收到此错误

若要修复此问题,请在检索密钥时提供默认值,例如使用
get
方法而不是
[]
,以
0
None

dfdata = [[t[cols[0]], t.get(cols[1], None)]] for r in json_data.get('results') for t in r.get("alternatives")]

不幸的是,当我用你的行替换我的行时,它显示无效语法