Maison  >  Article  >  développement back-end  >  Comment utiliser JsonPath pour les opérations de lecture et d'écriture Python Json

Comment utiliser JsonPath pour les opérations de lecture et d'écriture Python Json

PHPz
PHPzavant
2023-04-18 16:43:051132parcourir

    Opérations de lecture et d'écriture Python Json_Explication détaillée de l'utilisation de JsonPath

    1. Introduction

    JSONPath est une bibliothèque de classes d'extraction d'informations. Il s'agit d'un outil permettant d'extraire des informations spécifiées à partir de documents JSON. Il fournit plusieurs versions d'implémentation linguistiques. Javascript, Python, PHP et Java.

    La méthode d'installation de JSONPath est la suivante : pip install jsonpath

    Comparaison de la syntaxe JSONPath et de la syntaxe XPATH JSON a une structure claire, une lisibilité élevée, une faible complexité et est très facile à faire correspondre. La syntaxe de JSONPath est similaire à celle de XPath. Le tableau suivant montre la comparaison de syntaxe entre JSONPath et l'objet JSON :

    bookJson = {
      "store": {
        "book":[
          { "category": "reference",
            "author": "Nigel Rees",
            "title": "Sayings of the Century",
            "price": 8.95
          },
          { "category": "fiction",
            "author": "J. R. R. Tolkien",
            "title": "The Lord of the Rings",
            "isbn": "0-395-19395-8",
            "price": 22.99
          }
        ],
        "bicycle": {
          "color": "red",
          "price": 19.95
        }
      }
    }

    1) Afficher l'attribut de couleur du vélo sous le magasin : Comment utiliser JsonPath pour les opérations de lecture et d'écriture Python Json

    books=json.loads(bookJson)

    2) Afficher tous les objets contenus dans le nœud du livre :

    checkurl = "$.store.bicycel.color"
    print(jsonpath.jsonpath(books, checkurl))
    # 输出:['red']

    3) Afficher le premier objet du nœud du livre :

    checkurl = "$.store.book[*]"
    object_list=jsonpath.jsonpath(books, checkurl)
    print(object_list)

    4) Afficher les valeurs de titre d'attribut correspondant à tous les objets du nœud du livre :

    checkurl = "$.store.book[0]"
    obj = jsonpath.jsonpath(books, checkurl)
    print(obj)
    # 输出: ['category': 'reference', 'author': 'Nigel Rees', 'title': 'Sayings of the Century', 'price': 8.95}]

    5) Afficher tous les objets du livre nœud dont la catégorie est fiction :

    checkurl = "$.store.book[*].title"
    titles = jsonpath.jsonpath(books, checkurl)
    print(titles)
    # 输出: ['Sayings of the Century', 'The Lord of the Rings']

    6) Afficher tous les objets du nœud livre dont le prix est inférieur à 10 :

    checkurl = "$.store.book[?(@.category=='fiction')]”
    books=jsonpath.jsonpath(books, checkurl)
    print(books)
    # 输出:[{'category': 'fiction', 'author': 'J. R. R. Tolkien', 'title': 'The Lordof the Rings', 'isbn': '0-395-19395-8', 'price': 22.99}]

    7) Afficher tous les objets contenant isb dans le nœud livre :

    checkurl="$.store.book[?(@.price<10)]"
    books = jsonpath.jsonpath(books, checkurl)
    print(books)
    # 输出: [{&#39;category&#39;: &#39;reference&#39;, &#39;author&#39;: &#39;Nigel Rees&#39;, &#39;title&#39;:&#39;Sayings of the Century&#39;, &#39;price&#39;: 8.95}]

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Déclaration:
    Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer