取消
顯示的結果
而不是尋找
你的意思是:

我如何通過kwargs輪方法嗎?

消
新的貢獻者二世

你好,

我有一個方法命名主要需要* * kwargs作為參數。

def主要(* * kwargs): parameterOne = kwargs parameterTwo = kwargs (“param-one”) (“param-two”) parameterThree = kwargs (“param-optional-one”)如果“param-optional-one”kwargs其他沒有parameterFour = kwargs (“param-optional-two”)如果“param-optional-two”kwargs別的沒有

我已經宣布它作為entry_point設置

entry_points = {console_scripts:['主要= ETL。“V1:主要']},

我通過關鍵字參數的任務

“entry_point”:“主要”、“named_parameters”: {“param-one”:“測試”、“param-two”:“測試兩個“}

當我運行工作它進入的主要方法,但是失敗在第一行

KeyError:“param-one”- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - KeyError回溯(最近調用最後)<命令——1 > <模塊> 16如果條目:17 #加載和執行入口點,假設沒有參數- - - > 18個條目[0].load () () 19: 20 ETL進口。V1 /磚/ python / lib / python3.8 /網站/ ETL / V1。py在主(* * kwargs) 8因為我,v kwargs.items(): 9打印(“”,我“:”,v) - - - > 10 parameterOne = kwargs [' param-one '] 11 parameterTwo = kwargs [‘param-two] KeyError:“param-one”

關鍵字參數沒有被傳遞或我做錯了什麼嗎?

我想看看什麼kwargs,然而,沒有打印任何東西在上麵的任務輸出的錯誤顯示。所以,我不能告訴如果任何kwargs與否。

1接受解決方案

接受的解決方案

Hubert_Dudek1
尊敬的貢獻者三世

它是命令行參數

——-param-one =測試

您可以測試ArgumentParser

從解析器argparse進口ArgumentParser = ArgumentParser()解析器。add_argument (”——param-one”, dest =“parameterOne”)參數= parser.parse_args ()

在原帖子查看解決方案

2回答2

Hubert_Dudek1
尊敬的貢獻者三世

它是命令行參數

——-param-one =測試

您可以測試ArgumentParser

從解析器argparse進口ArgumentParser = ArgumentParser()解析器。add_argument (”——param-one”, dest =“parameterOne”)參數= parser.parse_args ()

消
新的貢獻者二世

你好,

謝謝你的回答。

是的,你說的是正確的,我們必須使用argparse關鍵字參數。

不過,做argparse以外的入口點方法對我沒用。

我必須做它內部的方法。

我不知道為什麼?我將在一個小時再試一次,現在我很高興能夠得到工作。

謝謝

我將選擇你的答案。

我要評論回來如果它可以以外的輸入方法。

Baidu
map