如何将字符串传递给函数,使其在内部表现为变量/属性?

时间:2018-04-20 04:51:07

标签: python python-2.7

我正在编写一个函数,它将MongoDB中的值转换为数据帧。在mongo转储中,我有很多供应商名称,他们遵循格式" db.suppliername_properties",其中suppliername是变量,如taap,hotelbeds,ean等。然后,我对每个数据帧进行进一步的操作。

我有类似的东西:

    client = MongoClient()
    db = client["supplier_static_database"]
    prop_1 = pd.DataFrame(list(db.taap_properties.find()))
    prop_2 = pd.DataFrame(list(db.hotelbeds_properties.find()))
    .
    .
    .
    prop_n = pd.DataFrame(list(db.<suppliername_n>_properties.find())

在这里,我想编写一个函数,将供应商名称作为字符串(用户输入类似&#34; taap&#34;或&#34; hotelbeds&#34;)然后执行必要的操作提取数据库并执行一些操作。例如:

def func(supplier_name, db, ...):
    prop = pd.DataFrame(list(db.supplier_name.find()))
    #do some operations
    return prop

此处supplier_name是用户提供的字符串。如何从用户字符串输入转到将其用作变量/属性?这在python中可能吗?或者我有可以实施的解决方法吗?

1 个答案:

答案 0 :(得分:2)

只需使用timeout(function来获取构造的属性。

getattr