【问题标题】:Modified parameter name with variable in Python在 Python 中使用变量修改参数名称
【发布时间】:2014-11-17 01:10:53
【问题描述】:

我正在将 PHP 代码翻译成 Python 代码,将数据插入到 MySql 表中。

根据命名约定,有四种可能的列: image_ + [hq,sq, lq, thumb] + _url

php代码如下(使用Laravel DB Query):

DB::table('items')
                ->insertGetId(array(
                   'title' => $title,
                    'image_' . $quality . '_url' => $amazon_url,
                ));

给我一​​个语法错误的相应 python 代码(使用 SqlAlchemy Core):

item_ins = items_tbl.insert().values(title=item_title, 
                                                   image_+quality+_url=amazon_url

            )

如何在 Python 中完成相同的结果而不使用 if/else 语句?

【问题讨论】:

    标签: php python mysql


    【解决方案1】:

    您不能在 Python 函数调用中使用可变命名的关键字参数。但是,您可以将 dict 扩展为关键字参数:

    item_ins = items_tbl.insert().values(**{'title' : item_title,
                                            'image_'+quality+'_url' : amazon_url})
    

    如果以quality=='hq'为例,这相当于调用

    item_ins = items_tbl.insert().values(title = item_title,
                                         image_hq_url: amazon_url)
    

    您还应该注意,在您尝试使用的语法中,您尝试将image__url 视为字符串文字,将quality 视为变量,而不在它们之间进行任何语法区分。没有办法。

    【讨论】:

    • 谢谢。这很有帮助。
    猜你喜欢
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    • 1970-01-01
    • 2011-11-19
    • 2013-09-20
    相关资源
    最近更新 更多