首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Python中重新排列已解析的HTML数据

在Python中重新排列已解析的HTML数据
EN

Stack Overflow用户
提问于 2012-02-15 07:42:55
回答 2查看 173关注 0票数 1

我几乎没有编程经验,所以请原谅我的无知。

我正在尝试解析来自Yahoo!的“关键统计”页面。财务,具体说就是this页面。我一直在玩BeautifulSoup,能够提取我想要的数据,但后来遇到了心理障碍。我希望数据如下所示:

代码语言:javascript
运行
复制
measure[i]: value[i]
.
.  
measure[n]: value[n]

但是我使用我的脚本得到的结果是:

代码语言:javascript
运行
复制
measure[i]  
.
.    
measure[n]  
value[i]
.
.
value[n]

下面是我将两个数据字段连接在一起的尝试,它会抛出一个错误:

代码语言:javascript
运行
复制
measure = soup.findAll('td', {'class':'yfnc_tablehead1'}, width='74%')  
value = soup.findAll('td', {'class':'yfnc_tabledata1'}) 

for incident in measure:
    x = incident.contents

for incident2 in value:
    y = incident2.contents

data = x + y

print ': '.join(data)

此外,我想删除这些值中不需要的字符,但我将阅读re.compile和re.sub文档。

感谢您的任何意见。

EN

Stack Overflow用户

发布于 2012-02-15 07:50:47

代码语言:javascript
运行
复制
data = x + y

+操作符附加列表,如果您想要耦合列表的相应项,请尝试使用zip()函数:

代码语言:javascript
运行
复制
data = zip(x,y)
for m,v in data:
  print m,v

另外,

代码语言:javascript
运行
复制
for incident in measure:
  x = incident.contents

这将在循环的每次迭代中覆盖x,因此最终x只包含分配的最后一个值,而不是所有这些值的聚合。在这里,您可能确实希望像这样使用+运算符:

代码语言:javascript
运行
复制
for incident in measure:
  x += incident.contents # x += y is the same as x = x + y

当然,另一个循环也是如此。

票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9285922

复制
相关文章

相似问题

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