首页 > 解决方案 > 如何将字典中的url传递给python中的函数

问题描述

我正在尝试通过将 url 传递给它来调用函数,但我不太清楚如何为我的用例完成它。

在下面代码的最后一行,有我想做的事情。我知道在这样的函数中输入字典键很糟糕,但我不知道如何正确地将字典的def键传递给函数。感谢您的指导。urlsget_page()

这是我的代码:

...
urls = {
    "abc": abc_url,
    "def": def_url,
}

if site in urls:
    print("site: " + site, "url: " + urls[site])

    products = get_index_data(get_page(urls[site]))

    for link in products:
        time.sleep(15)
        data = get_detail_data(get_page(link))

        print(data)
        write_csv(data, link)


def get_page(urls[site]):

    ...code continues...

标签: pythonpython-3.x

解决方案


首先

由于 python 是一种解释性语言(它逐行读取代码并且不编译);因此函数实现应该在函数调用之前。

现在来回答你的问题,当调用get_page(urls[site]))它时,它会传递字典中的值。所以你的函数应该有一个参数,比如def get_page(website_url):

总结一下——

...

urls = {
    "abc": abc_url,
    "def": def_url,
}

def get_page(website_url):
    ...function code...

if site in urls:
    print("site: " + site, "url: " + urls[site])

    products = get_index_data(get_page(urls[site]))

    for link in products:
        time.sleep(15)
        data = get_detail_data(get_page(link))

        print(data)
        write_csv(data, link)

...code continues...

注意:您可以从字典中获取两个键和值

if website_name, website_url in urls.items():

推荐阅读