首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Asyncpg: KeyError '0‘

Asyncpg: KeyError '0‘
EN

Stack Overflow用户
提问于 2021-08-05 20:03:54
回答 1查看 134关注 0票数 0

我正在使用asyncpg将项目列表插入到postgres中。当我运行这个函数时,我得到了没有附加上下文的"KeyError: 0"

有没有人遇到过这种情况?

代码语言:javascript
复制
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()
EN

回答 1

Stack Overflow用户

发布于 2021-09-30 14:23:23

这与asyncpg无关。

获取"KeyError: 0"是因为您试图从没有您在代码中键入的键的字典中获取一个值。

所以我的猜测是,在代码中的某个地方,您正在尝试访问不包含该键的字典的键0,如下所示

代码语言:javascript
复制
my_var = my_dict[0]

大多数情况下,出现此错误的原因是

one迭代列表变量以获取数值,然后尝试将它们传递给字典

就好像可以通过调用存储在列表中的字典值来访问它们一样

  • ,也就是,错误地把字典当作一个列表-

所以通过位置参数,而不是通过它们的键。

示例:

代码语言:javascript
复制
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

但你想要的可能是

代码语言:javascript
复制
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的值时会发生的情况:

代码语言:javascript
复制
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

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68672874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档