csv.reader打印['var']而不是var。

问题描述 投票:0回答:1

当我读取一个csv文件,并将行的值分到一个字符串变量中时,会打印'['var'']',但我需要的只是var。

from itertools import islice
import csv


with open("test12.csv") as tl:
    for row in islice(csv.reader(tl), 0, None):
        rowlink = f"https://www.footballdb{row}/roster"
        print(rowlink)

这段代码打印的是

https://www.footballdb['test1']/roster
https://www.footballdb['test2']/roster
[Finished in 0.047s]

我要去掉方括号和引号。

先谢谢你

python itertools
1个回答
1
投票

我假设你的csv文件是这样的

test1
test2

而你期待的是一个简单的列表,如 ['test1', 'test2'].

问题是csv.reader应该返回一个嵌套的列表,所以它更像是 [['test1'], ['test2']].

通过选择列表中的第一个项目,你应该能够得到所需的输出,作为一个字符串,而不是你目前正在打印的列表,如下所示。

from itertools import islice
import csv


with open("test12.csv") as tl:
    for row in islice(csv.reader(tl), 0, None):
        rowlink = f"https://www.footballdb{row[0]}/roster"
        print(rowlink)

0
投票

迭代器总是产生一个 列表 的值,即使该行只有一列。您打印的是整个列表(其字符串表示法包括括号0,而不仅仅是该列表的第一个元素。

with open("test12.csv") as tl:
    for row in csv.reader(tl):
        rowlink = f"https://www.footballdb{row[0]}/roster"
        print(rowlink)
© www.soinside.com 2019 - 2024. All rights reserved.