我正在尝试创建一个可以将文本放入字典中的函数,以便随后将其视为数据框。字典所需的格式应类似于下面的第一个列表。
我尝试过的代码创建的事件数量是事件数量的两倍,并且 将所有观察值替换为最后一个key:value对或正确的文本,但将每个新迭代的数据放置在新行中,而不是将前几行中的新列。
DESIRED OUTPUT
[{'foo': '012', 'bar':'abc'},
{'foo': '345', 'bar':'def'},
{'foo': '678', 'bar':'ghi'}]
OUTPUT 1
[{'foo': '678', 'bar':'ghi'},
{'foo': '678', 'bar':'ghi'},
{'foo': '678', 'bar':'ghi'},
{'foo': '678', 'bar':'ghi'},
{'foo': '678', 'bar':'ghi'},
{'foo': '678', 'bar':'ghi'}]
OUTPUT 2
[{'foo': '012'},
{'foo': '345'},
{'foo': '678'},
{'bar': 'abc'},
{'bar': 'def'},
{'bar': 'ghi'}]
这就是我现在的位置。
如何构造循环或重写代码,以便以所需的格式创建字典输出?奖励指向任何知道如何在事件具有多个来源(“条形”键/值对)的情况下创建第二列的人。
events = soup.findAll("div", {"class": "industry"})
my_list=[]
def rowfiller(variable, title):
for x in variable:
new_row = {}
a = x.text.strip()
new_row[title] = a
my_list.append(new_row)
for event in events:
numbers = event.find_all("span", class_="headlines")
letters = event.find_all("a", class_="sources")
rowfiller(numbers, 'foo')
rowfiller(letters, 'bar')
my_list
#pd.DataFrame(my_list)