import csv
import urllib
url = "https://www.national-lottery.co.uk/player/lotto/results/downloadResultsCSV.ftl"
webpage = urllib.urlopen(url)
datareader = csv.reader((webpage),delimiter=',')
我正在尝试从此网址上的CSV文件中选择特定值。但是我似乎无法从文件的第二行中选择值,而是似乎只给出了来自顶行的值,即Ball 1.例如,在Python中是否有选择的方法,值' 26'从第二行的值?
答案 0 :(得分:0)
只需循环遍历csv.reader
。
with open("downloadResultsCSV.ftl") as i:
reader = csv.reader(i)
for row in reader:
print(row[0]) # prints the first field of each row
答案 1 :(得分:0)
我确实得到了理想的结果。
>>> import urllib
>>> url = "https://www.national-lottery.co.uk/player/lotto/results/downloadResultsCSV.ftl"
>>> webpage = urllib.urlopen(url)
datareader = csv.reader((webpage),delimiter=',')
for data in datareader:
print(data[1])
...
Ball 1
26
46
4
答案 2 :(得分:0)
csv reader对象(在您的情况下为datareader
)就像CSV文件中的行上的迭代器。它返回的行本身可以迭代以获取该行中的各个值。
例如:
>>> import csv
>>> import urllib
>>> url = "https://www.national-lottery.co.uk/player/lotto/results/downloadResultsCSV.ftl"
>>> webpage = urllib.urlopen(url)
>>> datareader = csv.reader((webpage),delimiter=',')
>>> for row in datareader:
... print "Row:"
... for value in row:
... print " ", value
...
Row:
DrawDate
Ball 1
Ball 2
Ball 3
Ball 4
Ball 5
Ball 6
Bonus Ball
Ball Set
Machine
Raffles
DrawNumber
Row:
08-Mar-2014
26
2
9
44
12
31
5
5
LANCELOT
等等。
答案 3 :(得分:0)
尝试使用DictReader
,因为您的文件有标题:
import urllib
import csv
page = urllib.urlopen(url)
reader = csv.DictReader(page)
rows = list(reader)
for row in rows:
print(row['Ball 1'])
print(row['Bonus Ball'])
# .. etc.