我正在使用Beautiful Soup包进行一些网络抓取,并且我希望能够将行放入名为 table 的字典中,其中每个键将具有多个值。
这本词典代表一个表,最终将被制成一个表
我已经抓取了html以便为我提供键值,但是问题是从html读取下一行并匹配正确的键。
这些名称是字典键名称:
RowName
UpdateTime
State
OrdersC
TicketsR
OrdersNC
TicketsNR
ReadingTime
ClearingTime
ClearingInProgress
Volumes
StartTime
StopTime
这是数据的外观(打印到控制台时):
(注意:这些结果集中将有两个以上)
NYBOT
00:10:39
Not Connected
0
7043
0
7043
07:58:30
--:--:--
0
0
02:30:00
20:00:00
MONTREAL
N/A
N/A
0
145
0
145
07:59:01
--:--:--
0
0
01:00:00
20:00:00
因此字典将如下所示:
{RowName: [NYBOT, MONTREAL], UpdateTime: [00:10:39, N/A], ... , StopTime: [20:00:00,20:00:00]}
我已经尝试过了,但是无济于事,因为我得到的错误是next()函数无法遍历字符串:
for line in site.find_all('td'):
line = line.strip()
table.update(RowName = line.text.replace('\xa0', ''))
next(line)
.
.
.
next(line)
table.update(StopTime = line.text.replace('\xa0', ''))
答案 0 :(得分:0)
将数据放入字典中,因为您已经知道元素的长度和顺序。
characteristics = ['RowName','UpdateTime','State','OrdersC','TicketsR'....'StopTime']
data = []
for line in site.find_all('td'):
line = line.strip()
line.text.replace('\xa0', '')
data.extend(line)
info = dict(zip(characteristics, data))
答案 1 :(得分:0)
<<dict_name>> = {z[0]:list(z[1:]) for z in zip(<<keys>>,<<value_1>>, <<value_2>>,..., <<value_N>>)}
这就是我创建具有多个键值的字典的诀窍