迭代非类型对象

2024-09-30 03:24:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我想深入了解一些统计数据,并编写一些代码。在

import urllib2
import HTMLParser

response = urllib2.urlopen('http://www.eia.gov/dnav/pet/hist/LeafHandler.ashx?n=PET&s=MCESTUS1&f=M')
data = response.read()


class TableParser(HTMLParser.HTMLParser):
    def __init__(self):
        HTMLParser.HTMLParser.__init__(self)
        self.in_td = False

    def handle_starttag(self, tag, attrs):
        if tag == 'td':
            self.in_td = True

    def handle_data(self, data):
        if self.in_td:
            print data

    def handle_endtag(self, tag):
        self.in_td = False

p = TableParser()
raw_data = p.feed(data)

 raw_list = []
 for string in raw_data:
     raw_list.append(string)

 print raw_list

此脚本的一些输出/

^{pr2}$

这行,但我不能先遍历Nonetype对象。在

第二,我怎么能把这些数据放到熊猫的图表里,用月份和数量来表示?在


Tags: inimportselfdatarawinitresponsedef
1条回答
网友
1楼 · 发布于 2024-09-30 03:24:02

看起来像解析器在解析,但是您需要通过其他方法从解析器中获取数据,而不是返回值p.feed(data),因为它总是None。如何将其累积到parser对象的属性列表中:

import urllib2
import HTMLParser

response = urllib2.urlopen('http://www.eia.gov/dnav/pet/hist/LeafHandler.ashx?n=PET&s=MCESTUS1&f=M')
data = response.read()


class TableParser(HTMLParser.HTMLParser):
    def __init__(self):
        HTMLParser.HTMLParser.__init__(self)
        self.in_td = False
        self.raw_data = []

    def handle_starttag(self, tag, attrs):
        if tag == 'td':
            self.in_td = True

    def handle_data(self, data):
        if self.in_td:
            print data
            self.raw_data.append(data)

    def handle_endtag(self, tag):
        self.in_td = False

p = TableParser()
p.feed(data)

print p.raw_data

未经测试。在

相关问题 更多 >

    热门问题