ホームページ > バックエンド開発 > Python チュートリアル > Python Json の読み取りおよび書き込み操作に JsonPath を使用する方法

Python Json の読み取りおよび書き込み操作に JsonPath を使用する方法

PHPz
リリース: 2023-04-18 16:43:05
転載
1152 人が閲覧しました

    Python Json の読み取りおよび書き込み操作_JsonPath の使用法の詳細な説明

    1. はじめに

    JSONPath は、情報抽出クラス ライブラリです。 JSON ドキュメントから指定された情報を抽出するためのツールから派生し、JavaScript、Python、PHP、Java などの複数の言語実装バージョンを提供します。

    JSONPath のインストール方法は次のとおりです。 pip install jsonpath

    JSONPath 構文と XPATH 構文を比較すると、JSON は構造が明確で、可読性が高く、複雑さが低く、とても合わせやすいです。 JSONPath の構文は XPath に似ています。次の表は、JSONPath と XPath の構文の比較を示しています:

    Python Json の読み取りおよび書き込み操作に JsonPath を使用する方法

    2. コード例

    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
        }
      }
    }
    ログイン後にコピー

    変数 bookJsonは既に含まれています。この JSON 文字列は、次のコードで逆シリアル化して JSON オブジェクトを取得できます。

    books=json.loads(bookJson)
    ログイン後にコピー

    1) ストアの下にある自転車の色属性を表示します。

    checkurl = "$.store.bicycel.color"
    print(jsonpath.jsonpath(books, checkurl))
    # 输出:['red']
    ログイン後にコピー

    2) を出力します。ブックノードに含まれる内容 すべてのオブジェクト:

    checkurl = "$.store.book[*]"
    object_list=jsonpath.jsonpath(books, checkurl)
    print(object_list)
    ログイン後にコピー

    3) ブックノードの最初のオブジェクトを出力:

    checkurl = "$.store.book[0]"
    obj = jsonpath.jsonpath(books, checkurl)
    print(obj)
    # 输出: ['category': 'reference', 'author': 'Nigel Rees', 'title': 'Sayings of the Century', 'price': 8.95}]
    ログイン後にコピー

    4) ブック内のすべてのオブジェクトに対応する属性タイトル値を出力ノード:

    checkurl = "$.store.book[*].title"
    titles = jsonpath.jsonpath(books, checkurl)
    print(titles)
    # 输出: ['Sayings of the Century', 'The Lord of the Rings']
    ログイン後にコピー

    5) カテゴリがフィクションであるブック ノード内のすべてのオブジェクトを出力します:

    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}]
    ログイン後にコピー

    6) 価格が 10 未満であるブック ノード内のすべてのオブジェクトを出力します:

    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}]
    ログイン後にコピー

    7) isb を含む book ノード内のすべてのオブジェクトを出力します: ###
    checkurl = "$.store.book[?(@.isb)]"
    books = jsonpath.jsonpath(books,checkurl)
    print(books)
    # 输出: [{&#39;category&#39;: &#39;fiction&#39;, &#39;author&#39;: &#39;J. R. R. Tolkien&#39;, &#39;title&#39;: &#39;The Lord of the Rings&#39;, &#39;isbn&#39;: &#39;0-395-19395-8&#39;, &#39;price&#39;: 22.99}]
    ログイン後にコピー

    以上がPython Json の読み取りおよび書き込み操作に JsonPath を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    関連ラベル:
    ソース:yisu.com
    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    最新の問題
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート