首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用for循环拆分CSV数据并打印一个变量。ValueError:需要更多的1值来解压吗?

使用for循环拆分CSV数据并打印一个变量。ValueError:需要更多的1值来解压吗?
EN

Stack Overflow用户
提问于 2015-07-03 17:44:39
回答 2查看 181关注 0票数 0

我试图逐行读取CSV数据,在每一行中分离出1条数据并打印出来。

来自CSV的样本:

代码语言:javascript
运行
复制
Date,Open,High,Low,Last,Change,Settle,Volume,Prev. Day Open Interest
1969-06-25,22.0,22.0,22.0,,,22.0,3.0,3.0
1969-06-26,23.0,23.0,21.9,,,21.9,6.0,9.0

我的代码:

代码语言:javascript
运行
复制
file1 = 'LNG1970'

infile = open(('%s.csv' % file1), 'r')

for line in infile.readlines():
    (d, o, h, l, la, ch, s, v, o) = line.split(",")
    print(d)

控制台中返回的错误:

回溯(最近一次调用): 文件"",第1行,在 文件"C:\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py",第682行,在runfile execfile中(文件名,命名空间) 文件"C:\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py",第85行,在execfile exec(编译(打开(文件名,'rb').read(),文件名,'exec'),命名空间) 在(d,o,h,l,la,ch,s,v,o) = line.split(",")中,文件“C:/User/Nutrade/Desktop/Python/Quandl Hog Project/spreadmaker.py",第6行 ValueError:需要超过一个值才能解包

有谁能解释一下为什么会发生这种情况,以及如何纠正?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-03 18:05:30

你的代码很好用。正如所讨论的here,您可能在CSV文件的末尾有一个或多个空行。(从您的问题中很难看出,因为CSV文件的格式没有很好地格式化。有关使用Markdown格式化文本的帮助,请参阅here。)

票数 0
EN

Stack Overflow用户

发布于 2015-07-03 18:04:55

如果长度不正确,请尝试将其赋值给临时包,然后在解压缩之前跳过。

代码语言:javascript
运行
复制
for line in infile.readlines():
    temp = line.split(",")
    if not len(temp) == 9:
        continue
    (d, o, h, l, la, ch, s, v, o) = temp
    print(d)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31212027

复制
相关文章

相似问题

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