Python 为什么在将数据写入csv时会收到密钥错误?如何创建异常错误处理?
我是python新手,正在尝试理解错误处理 我的剧本-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
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")]
不幸的是,当我用你的行替换我的行时,它显示无效语法