Python - 从CSV网页中选择特定值

时间:2014-03-11 12:18:49

标签: python csv urllib

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'从第二行的值?

4 个答案:

答案 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.