2017-06-17 9 views
0

Ich versuche, passiert eine JSON-Datei zu analysieren, Angenommen, die Funktion, die von einer Variablen erfolgt im json Pfad section1Wie mehrere Argumente in Funktion

def traverseJson(arg1): 
    #do stuff 

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

Um die Funktion nennen würde ich genannt genannt wird run:

traverseJson(section1) 

Wie würde ich dann mehrere Argumente in die Funktion übergeben? z. B.

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

Eine Lösung, die die Anzahl der Argumente nicht vordefiniert, ist besser geeignet, da die Anzahl der Argumente variieren kann.

Antwort

1

können Sie *args Syntax:

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

UPDATE: Verwendung

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

# or 

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

Sie können diese Art von Argumenten als Array oder als Dictionary übergeben (Stichwortzuordnung).

Um als ein Array übergeben * Operator, um als Hash übergeben, verwenden Sie ** Operator.

Beispiel:

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

Lesen Sie mehr here und here.

1

Wenn Sie wissen, die maximale Anzahl von args eine un-pythonic Art und Weise zu tun, es wäre

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

Wenn vier Argumente nicht angegeben werden, wird den verbleibenden Variablen 0 zugewiesen.

Allerdings würde ich empfehlen, die Argumente als Liste zu übergeben. z.B.

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

traverseJson([section1, section2, section3]) 

this helps

Verwandte Themen