我不太确定该怎么问,我对Python和整个编程都是新手,但这是我的问题.我希望这是有意义的..

我目前正在处理一个填充postgres数据库的工作,其中我有一个循环,该循环在读取CSV文件时迭代以获得特定的输出,然后将其插入/查询到一个表中."基本上就是创建一个手柄"

但我收到一个错误,我认为这是由于CSV文件中的空值造成的.我在过go 学过Pandas 清理数据,但我提取这段代码的Github代码似乎不包括Pandas 这样做.

在Youtuber/ENGINEER的视频《兼职Larry-Tracing Ark用Python和PostgreSQL投资ETF》中,他显然使用了完全相同的代码,但他没有得到相同的指数错误.不知道如何避免这个错误,我已经阅读和观看了视频,但它没有解释这个特定的情况

以下是索引列表:

['date', 'fund', 'company', 'ticker', 'cusip', 'shares', 'market value ($)', 'weight (%)']

PS.我一般理解,列表的索引范围是从0到n-1,n是列表中的值的总数.

范围是从0到7 使其成为索引列表中的8个值

这是Github的链接,以防您想要查看它和YT链接 https://github.com/hackingthemarkets/ark-funds-tracker

YT链接: https://www.youtube.com/watch?v=5uW0TLHQg9w&t=1093s个 时间戳:分钟11:56

下面是3张图片:代码、错误和结尾的CSV文件

Created a handle from postgres loop along with csv file

I get a portion of the rows but get the Index Error due to empty values I believe

CSV FILE

推荐答案

如果您确定正确的行包含8个元素,则可以在继续打印之前添加支票,例如下面这一节:

with open(f"Resources/{current_date}/{etf['symbol']}.csv") as f:
    reader = csv.reaader(f)
    for row in reader:
        if len(row) == 8:    #add this check
            ticker = row[3]
            if ticker:
                print(row)

编辑:要回答您关于如何修复代码的问题,我想您可以从了解list[index]的工作原理开始.例如,运行以下命令,查看发生的错误并了解发生错误的原因:

lis = ['date', 'fund', 'company']
for i in [0, 1, 2]:
    print(i)
    print(lis[i])

for i in [0, 1, 2, 3, 4, 5, 6, 7, 8]:
    print(i)
    print(lis[i])    #this will result in "index out of range" because there is no item in `lis[3]`

Python相关问答推荐

在Python中,如何初始化集合列表脚本的输出

X射线扫描显示Docker中的pip漏洞,尽管图像中未安装pip

Pandas使用过滤器映射多列

PyTorch卷积自动编码器,输出维度与输入不同

Django文件上传不起作用:文件未出现在媒体目录或数据库中

将从Python接收的原始字节图像数据转换为C++ Qt QIcon以显示在QStandardProject中

如何使用Selenium访问svg对象内部的元素

从今天起的future 12个月内使用Python迭代

将轨迹优化问题描述为NLP.如何用Gekko解决这个问题?当前面临异常:@错误:最大方程长度错误

使用plotnine和Python构建地块

Django管理面板显示字段最大长度而不是字段名称

删除任何仅包含字符(或不包含其他数字值的邮政编码)的观察

类型错误:输入类型不支持ufuncisnan-在执行Mann-Whitney U测试时[SOLVED]

Vectorize多个头寸的止盈/止盈回溯测试pythonpandas

如何过滤包含2个指定子字符串的收件箱列名?

两个pandas的平均值按元素的结果串接元素.为什么?

如何将一个动态分配的C数组转换为Numpy数组,并在C扩展模块中返回给Python

如何使Matplotlib标题以图形为中心,而图例框则以图形为中心

手动设置seborn/matplotlib散点图连续变量图例中显示的值

将标签移动到matplotlib饼图中楔形块的开始处