2017-07-13 2 views
1

La spécification JSON API utilise un dictionnaire comme la syntaxe pour certains query parameters:URL paramètre de requête comme un dictionnaire à Pyramid

GET /articles?include=author&fields[articles]=title,body,author&fields[people]=name HTTP/1.1 

est-il un moyen facile de récupérer le paramètre fields ci-dessus comme un dictionnaire en utilisant pyramide?

Pour fournir des détails supplémentaires, les fields paramètres suivants sont donnés:

  • fields[articles]=title,body,author
  • fields[people]=name

J'aimerais obtenir tous dans un dictionnaire Python:

fields = { 
    'articles': 'title,body,author', 
    'people': 'name', 
} 
+0

Vous allez devoir analyser ce format vous-même. D'après un examen rapide des bibliothèques JSON-API disponibles pour Python, il ne semble pas y avoir un analyseur largement disponible pour ce format. Comme l'indique la réponse de @ stevepiercy ci-dessous, il existe un moyen semi-hacky de le faire directement à partir du format x-www-urlencoded analysé que webob comprend. –

Répondre

1

Si je comprends w Vous demandez, un exemple est dans le Pyramid Quick Tour avec des liens vers d'autres exemples et l'API complète de demande de pyramide.

essentiellement:

fields_articles = request.params.get('fields[articles]', 'No articles provided') 
fields_people = request.params.get('fields[people]', 'No people provided') 

ensuite les mettre dans un dictionnaire.

EDIT

Est-ce que cela suffira?

fields = { 
    'articles': request.params.get('fields[articles]', ''), 
    'people': request.params.get('fields[people]', ''), 
} 
+0

J'ai ajouté plus de détails à ma question. – Spack