Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 阅读html的下一行_Python_Html_Python 3.x_Beautifulsoup - Fatal编程技术网

Python 阅读html的下一行

Python 阅读html的下一行,python,html,python-3.x,beautifulsoup,Python,Html,Python 3.x,Beautifulsoup,我正在使用Beautiful Soup软件包进行一些Web垃圾处理,我希望能够将行放入一个名为table的字典中,其中每个键都有多个值 这本词典是表格的代表,最终将被制成表格 我已经删除了html以提供键值,但问题是从html中读取下一行并匹配正确的键值 这些名称是字典键名称: RowName UpdateTime State OrdersC TicketsR OrdersNC TicketsNR ReadingTime ClearingTime ClearingInProgress Volum

我正在使用Beautiful Soup软件包进行一些Web垃圾处理,我希望能够将行放入一个名为table的字典中,其中每个键都有多个值

这本词典是表格的代表,最终将被制成表格

我已经删除了html以提供键值,但问题是从html中读取下一行并匹配正确的键值

这些名称是字典键名称:

RowName
UpdateTime
State
OrdersC
TicketsR
OrdersNC
TicketsNR
ReadingTime
ClearingTime
ClearingInProgress
Volumes
StartTime
StopTime
这是数据的外观(打印到控制台时):

(注意:将有两个以上的结果集)

因此,字典将如下所示:

{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', ''))

将数据放入字典中,因为您已经知道元素的长度和顺序

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))
={z[0]:在zip(,,,,)中为z列出(z[1:])

这就是我创建一个具有多个键值的字典的诀窍,它像html dom一样解析并执行xpath。find_all('td')已经将每一行作为列表中的一个元素提供给您。如果你已经知道你将拥有的元素的数量和顺序,你可以使用两个列表并使用“dict(zip(keys,values))”创建一个字典,我同意@SorenLantz的可能副本。我尝试了zip()函数,但它没有按应有的方式压缩。将有不止一组结果。@ SavaSux-Munk如果是这样的话,那么LIN。Tr..Enter可能不会返回字符串,您希望这只对一个例子有效,但是有一个以上的集合要考虑。然而,这是一个可以接受的解决方案,也许我可以将这个公式应用于有更多结果集的情况。
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))
<<dict_name>> = {z[0]:list(z[1:]) for z in zip(<<keys>>,<<value_1>>, <<value_2>>,..., <<value_N>>)}