我正在使用asyncpg将项目列表插入到postgres中。当我运行这个函数时,我得到了没有附加上下文的"KeyError: 0"。
有没有人遇到过这种情况?
import asyncpg
import os
cls = [list_of_columns]
pg_key = os.environ["PG_CONN"]
conn = await asyncpg.connect(pg_key)
await conn.copy_records_to_table('ppg', records=d, columns=cls)
await conn.close()发布于 2021-09-30 14:23:23
这与asyncpg无关。
获取"KeyError: 0"是因为您试图从没有您在代码中键入的键的字典中获取一个值。
所以我的猜测是,在代码中的某个地方,您正在尝试访问不包含该键的字典的键0,如下所示
my_var = my_dict[0]大多数情况下,出现此错误的原因是
one迭代列表变量以获取数值,然后尝试将它们传递给字典,
就好像可以通过调用存储在列表中的字典值来访问它们一样
所以通过位置参数,而不是通过它们的键。
示例:
my_list = [0, 1, 2, 3]
my_dict = {"alpha": 0.5, "beta": 0.05, "gamma": 0.005}
for i in my_list:
print(my_dict[i])回溯(最近一次调用):文件"",第4行,位于KeyError中:0
但你想要的可能是
my_list = [0, 1, 2, 3]
my_dict = {"alpha": 0.5, "beta": 0.05, "gamma": 0.005}
for i in my_dict:
print(my_dict[i])0.5 0.05 0.005
为了清楚起见,下面是在检查两个代码片段中i的值时会发生的情况:
my_list = [0, 1, 2, 3]
my_dict = {"alpha": 0.5, "beta": 0.05, "gamma": 0.005}
for i in my_list:
print("i =",i)
print(my_dict[i])i=0回溯(最近一次调用):KeyError中的文件"",第5行:0
my_list = [0, 1, 2, 3]
my_dict = {"alpha": 0.5, "beta": 0.05, "gamma": 0.005}
for i in my_dict:
print("i =",i)
print(my_dict[i])i= alpha 0.5i= beta 0.05I= gamma 0.005
https://stackoverflow.com/questions/68672874
复制相似问题