每个值的单键打印

时间:2017-12-12 19:44:18

标签: python dictionary for-loop printing key-value

我使用python运行for循环来打印出特定URL中的每个值,但是每个值都使用相同的键打印到新的字典,而不是将多个值插入到一个字典中。

如何将特定键的所有值插入到一个唯一键中?

kernelLinks = []

for values in output:
  links = links + ([("https://www.kaggle.com" + (values["scriptUrl"]))])

driver = webdriver.Chrome()
method = {}
dictionary = []

for url in links: 
    driver.get(url)
    driver.switch_to_frame(driver.find_element_by_tag_name("iframe"))
    data = driver.page_source
    data2 = BeautifulSoup(data, "lxml")

    for a in data2.find_all('span', class_="n"):
        data2 = BeautifulSoup(data, "lxml")
        dictionary = {}
        kernel = url
        method = a.text
        dictionary[kernel] = method
        print(dictionary)

当前输出:

{' https://www.kaggle.com/kanncaa1/data-sciencetutorial-for-beginners':' check_output'} {' https://www.kaggle.com/kanncaa1/data-sciencetutorial-for-beginners':'数据'} {' https://www.kaggle.com/kanncaa1/data-sciencetutorial-for-beginners':'解码'} .....

期望的输出:

{' https://www.kaggle.com/kanncaa1/data-sciencetutorial-for-beginners':' check_output',' data',' decode}

1 个答案:

答案 0 :(得分:0)

我认为你问题的相关部分是:

  

如何将特定键的所有值插入到一个唯一键中?

您可能希望使用其他数据结构来保存不同的值。 例如, set ,如果您只对不同的值感兴趣,而不是重复。 (如果要跟踪所有值,请切换到列表并使用追加而不是添加。)此答案演示了如何跟踪分配给要解析的页面上的不同html元素的css类。它假设你已经以某种方式获得了元素及其类。

items = [
    ('span', 'pretty'),
    ('div', 'listing'),
    ('div', 'header'),
    ('span', 'ugly'),
    ('div', 'footer'),
]

data = dict()
for elem, css_class in items:
    classes = data.setdefault(elem, set())
    classes.add(css_class)

print data

这个推测性的答案可能会让你前进。除此之外,请查看上面的评论,特别是在https://stackoverflow.com/help/mcve,正如@peter-wood在评论中已经提到的那样。