2016-08-09 30 views
1

Ich bin verwirrt, warum das nicht funktioniert. Hier ist mein swagger.yaml Teil, wo es definiert, was ein Ergebnis ist. Der Code, der dazu verbindet gibt ein Array von Arrays:Übergabe eines 2D-Array von Python zu Swagger

[[string, float], ....]

wenn ich dieses Array

Schalter

[string , Zeichenkette, ...]

alles funktioniert.

results: 
    type: "object" 
    required: 
    - "content" 
    properties: 
     content: 
     type: "array" 
     items: 
      type: "array" 
      items: {} 

Nicht sicher, was mit dem 2D-Array passiert. Die swagger beschwert hält:

raise TypeError('Expected bytes') TypeError: Expected bytes 
+0

So funktioniert Ihr 2D-Array, aber Sie erhalten eine Warnung? Richtig? – JayIsTooCommon

+0

Nein, es funktioniert nicht. Es gibt einen Fehler. – user3639557

+0

Vermissen Sie ein Komma? [[string, float], ....]? – JayIsTooCommon

Antwort

2

Nested-Arrays nicht bis 2.0 in swagger zugelassen wurden.

Wenn Sie 1.2 oder früher verwenden, können Sie Arrays nicht direkt verschachteln. Siehe section 4.3.3 der 1.2-Spezifikation, genauer gesagt "Ein Container darf NICHT in einem anderen Container verschachtelt sein."

Verschachtelte Arrays sind jetzt für 2.0 zulässig, aber meine begrenzte Verständnis ist, dass die Array-Elemente alle vom gleichen Typ sein müssen. Dies kommt aus dem Abschnitt namens "ITEMS OBJECT" über ein Drittel der Weg nach unten the 2.0 spec.

Ich kann Ihnen nicht viel nützlichen Rat darüber hinaus geben. Die GitHub-Problemseiten sind ziemlich interessant, da eine Reihe von Problemen, die mit Ihrem Problem zusammenhängen, auf eine Art und Weise behandelt werden. Issue 53 scheint zum Beispiel für Ihr Problem relevant zu sein und beschreibt auch das verschachtelte Array von Array-Einschränkungen (vor 2.0) und beschreibt Möglichkeiten, die es umgibt.

Ich hoffe, das hilft

+0

Nicht perfekt, aber ziemlich gut. – user3639557