2017-06-17 65 views
0

我試圖解析JSON文件,假設被調用的函數的JSON路徑需要從一個叫section1如何將多個參數傳遞到功能

def traverseJson(arg1): 
    #do stuff 

section1 = json["section"]["section"][1] 

變量調用函數我會運行:

traverseJson(section1) 

然後我將多個參數傳遞給函數?例如

section2 = json["section"]["subsection"][0] 
section3 = json["section"]["subsection"][0] 

由於參數的個數可以變化,所以不預定義參數個數的解決方案將會更適合。

回答

1

您可以使用*args語法:

def traverse(*args): 
    for arg in args: 
     # logic 

更新:使用

section1 = ... 
section2 = ... 
traverse(section1, section2) 

# or 

sections = [..., ...] 
traverse(*sections) 
1

您可以將這種參數作爲數組或字典(關鍵字映射)傳遞。

要作爲數組傳遞使用*運算符,要作爲散列傳遞,請使用**運算符。

實施例:

def function(first_arg, *args, **kwargs): 
    # something 

更多herehere

1

如果你知道args來最大數量做這將是一個未Python的方式

def traverseJson(arg1=0, arg2=0, arg3=0, arg4=0): 

如果沒有給出四個參數,它只給其餘的變量賦值0。

但是,我建議將參數作爲列表傳遞。例如

def traverseJson(arg1) : 
    for i in arg1: 
     #do stuff 

traverseJson([section1, section2, section3]) 

希望這有助於