Connexion: ValueError : l'élément de séquence de mise à jour du dictionnaire #0 a une longueur 1 ; 2 est requis

Créé le 6 nov. 2018  ·  3Commentaires  ·  Source: zalando/connexion

Obtenir une erreur mystérieuse avec la spécification OpenAPI et la connexion 2.0, je le posterai ici quand je le comprendrai

* Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)
[2018-11-05 23:51:32,803] ERROR in app: Exception on /path [GET]
Traceback (most recent call last):
  File "/project/lib/python3.6/site-packages/flask/app.py", line 2292, in wsgi_app
    response = self.full_dispatch_request()
  File "/project/lib/python3.6/site-packages/flask/app.py", line 1815, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/project/lib/python3.6/site-packages/flask/app.py", line 1718, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/project/lib/python3.6/site-packages/flask/_compat.py", line 35, in reraise
    raise value
  File "/project/lib/python3.6/site-packages/flask/app.py", line 1813, in full_dispatch_request
    rv = self.dispatch_request()
  File "/project/lib/python3.6/site-packages/flask/app.py", line 1799, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/project/lib/python3.6/site-packages/connexion/decorators/decorator.py", line 73, in wrapper
    response = function(request)
  File "/project/lib/python3.6/site-packages/connexion/decorators/uri_parsing.py", line 132, in wrapper
    response = function(request)
  File "/project/lib/python3.6/site-packages/connexion/decorators/validation.py", line 339, in wrapper
    return function(request)
  File "/project/lib/python3.6/site-packages/connexion/decorators/decorator.py", line 44, in wrapper
    response = function(request)
  File "/project/lib/python3.6/site-packages/connexion/decorators/parameter.py", line 108, in wrapper
    request.files, arguments, has_kwargs, sanitize)
  File "/project/lib/python3.6/site-packages/connexion/operations/abstract.py", line 268, in get_arguments
    has_kwargs, sanitize))
  File "/project/lib/python3.6/site-packages/connexion/operations/openapi.py", line 284, in _get_query_arguments
    arguments, has_kwargs, sanitize)
  File "/project/lib/python3.6/site-packages/connexion/operations/abstract.py", line 194, in _query_args_helper
    res[key] = self._get_val_from_param(value, query_defn)
  File "/project/lib/python3.6/site-packages/connexion/operations/openapi.py", line 295, in _get_val_from_param
    return make_type(value, query_schema["type"])
  File "/project/lib/python3.6/site-packages/connexion/utils.py", line 46, in make_type
    return type_func(value)
ValueError: dictionary update sequence element #0 has length 1; 2 is required
127.0.0.1 - - [05/Nov/2018 23:51:32] "GET /path?foo=bar HTTP/1.1" 500 -
waiting contributor feedback

Commentaire le plus utile

Dans ma spécification OpenAPI, j'ai changé cela

    Geo:
      description: A Geolocation object
      type: object
      properties:
        latitude:
          type: integer
          example: 40.742306
        longitude:
          type: integer
          example: -74.003494

pour ça

    Geo:
      description: A Geolocation object
      type: array
      items:
        type: number
        format: double
      example: 40.742306,-74.003494

et ça a l'air de régler le problème

Tous les 3 commentaires

Dans ma spécification OpenAPI, j'ai changé cela

    Geo:
      description: A Geolocation object
      type: object
      properties:
        latitude:
          type: integer
          example: 40.742306
        longitude:
          type: integer
          example: -74.003494

pour ça

    Geo:
      description: A Geolocation object
      type: array
      items:
        type: number
        format: double
      example: 40.742306,-74.003494

et ça a l'air de régler le problème

Cela m'aiderait beaucoup si vous pouviez publier une spécification de travail complète afin que je puisse reproduire le problème.

Salut,

Ce bogue est dû à l'échec de la ligne suivante car l'entrée est une chaîne au lieu de dict.

https://github.com/zalando/connexion/blob/master/connexion/operations/openapi.py#L268

Serez-vous capable de résoudre ce problème en convertissant la chaîne en dict ?

Merci d'avance!

Cette page vous a été utile?
0 / 5 - 0 notes