每个值的单密钥打印



我正在使用python来运行一个用于循环以打印特定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-sciencetutorare-for-beginners':'check_output'}{'https://www.kaggle.com/kanncaa1/data-scienceTutorare-for-beginners':'data'}{'https://www.kaggle.com/kanncaa1/data-scienceTutorare-for-beginners':'decode'}.....

所需的输出:

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

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

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

您可能需要使用其他数据结构来保存不同的值。例如,如果您只感兴趣,则 set 有什么不同的值,而不是重复。(如果您想跟踪所有值,请切换到 list 并使用附加而不是 add 。)此答案说明您如何可以跟踪要分析的页面上分配给不同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在他的评论中已经提到的那样。

最新更新