{"id":30960,"date":"2025-10-04T01:41:16","date_gmt":"2025-10-03T22:41:16","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=30960"},"modified":"2025-10-04T01:41:16","modified_gmt":"2025-10-03T22:41:16","slug":"python-jsonpath-ornekleri-veri-cekme-sanati","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/python-jsonpath-ornekleri-veri-cekme-sanati\/","title":{"rendered":"Python JSONPath \u00d6rnekleri: Veri \u00c7ekme Sanat\u0131"},"content":{"rendered":"<p><body><\/p>\n<h2>Python JSONPath \u00d6rnekleri: Veri \u00c7ekme Sanat\u0131<\/h2>\n<h3>Giri\u015f<\/h3>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn yaz\u0131l\u0131m d\u00fcnyas\u0131nda, veri al\u0131\u015fveri\u015fi ve depolama formatlar\u0131 aras\u0131nda JavaScript Object Notation (JSON) tart\u0131\u015fmas\u0131z bir lider konumdad\u0131r. API&#8217;lar, web servisleri, mobil uygulamalar ve hatta bir\u00e7ok NoSQL veritaban\u0131 JSON&#8217;u tercih etmektedir. JSON&#8217;un basitli\u011fi ve insan taraf\u0131ndan okunabilirli\u011fi, onu geli\u015ftiriciler i\u00e7in cazip k\u0131lsa da, karma\u015f\u0131k ve i\u00e7 i\u00e7e ge\u00e7mi\u015f JSON yap\u0131lar\u0131ndan belirli verilere ula\u015fmak bazen zorlu bir g\u00f6rev haline gelebilir. \u0130\u015fte tam bu noktada JSONPath devreye girer.<\/p>\n<p>JSONPath, XML i\u00e7in XPath ne ise, JSON i\u00e7in de odur. JSON belgeleri i\u00e7indeki belirli \u00f6\u011feleri se\u00e7mek ve ay\u0131klamak i\u00e7in g\u00fc\u00e7l\u00fc ve esnek bir sorgu dili sunar. Bu makale, Python ortam\u0131nda JSONPath&#8217;in nas\u0131l kullan\u0131laca\u011f\u0131n\u0131, temel ve geli\u015fmi\u015f operat\u00f6rlerini \u00f6rneklerle a\u00e7\u0131klayarak, veri \u00e7ekme s\u00fcre\u00e7lerinizi nas\u0131l basitle\u015ftirebilece\u011finizi g\u00f6stermeyi ama\u00e7lamaktad\u0131r. Amac\u0131m\u0131z, Python geli\u015ftiricilerinin JSONPath&#8217;i etkin bir \u015fekilde kullanarak karma\u015f\u0131k JSON verilerini kolayca manip\u00fcle etmelerini sa\u011flamakt\u0131r.<\/p>\n<h3>JSON ve Yap\u0131sal Veri \u0130htiyac\u0131<\/h3>\n<p>JSON, hafif, veri de\u011fi\u015fim format\u0131 olarak giderek daha fazla pop\u00fclerlik kazanmaktad\u0131r. Nesneleri ve dizileri temsil etme yetene\u011fi sayesinde, karma\u015f\u0131k hiyerar\u015fik verileri yap\u0131land\u0131r\u0131lm\u0131\u015f bir \u015fekilde ifade edebilir. Bir REST API&#8217;den gelen yan\u0131t, bir yap\u0131land\u0131rma dosyas\u0131 veya bir log kayd\u0131, genellikle i\u00e7 i\u00e7e ge\u00e7mi\u015f nesneler ve diziler i\u00e7eren b\u00fcy\u00fck bir JSON belgesi olabilir.<\/p>\n<p>Bu t\u00fcr belgelerden belirli bir bilgi par\u00e7as\u0131n\u0131 \u00e7ekmek, geleneksel Python s\u00f6zl\u00fck ve liste manip\u00fclasyonlar\u0131yla yorucu ve hataya a\u00e7\u0131k bir s\u00fcre\u00e7 olabilir. \u00d6rne\u011fin, y\u00fczlerce kitaptan olu\u015fan bir listeden, belirli bir yazar\u0131n ad\u0131n\u0131 veya fiyat\u0131 belirli bir de\u011ferin alt\u0131nda olan t\u00fcm kitaplar\u0131n ba\u015fl\u0131klar\u0131n\u0131 bulmak i\u00e7in uzun d\u00f6ng\u00fcler ve ko\u015fullu ifadeler yazman\u0131z gerekebilir. Bu yakla\u015f\u0131m, kodun okunabilirli\u011fini azalt\u0131r, bak\u0131m\u0131 zorla\u015ft\u0131r\u0131r ve JSON yap\u0131s\u0131 de\u011fi\u015fti\u011finde kodun yeniden yaz\u0131lmas\u0131n\u0131 gerektirir.<\/p>\n<p>JSONPath, bu sorunu ortadan kald\u0131r\u0131r. T\u0131pk\u0131 bir veritaban\u0131 sorgusu gibi, istedi\u011finiz veriye do\u011frudan bir &#8220;yol&#8221; belirterek ula\u015fman\u0131z\u0131 sa\u011flar. Bu, kodunuzu daha k\u0131sa, daha okunabilir ve JSON yap\u0131s\u0131ndaki de\u011fi\u015fikliklere kar\u015f\u0131 daha dayan\u0131kl\u0131 hale getirir.<\/p>\n<h3>JSONPath Nedir?<\/h3>\n<p>JSONPath, JSON veri yap\u0131lar\u0131nda belirli \u00f6\u011feleri bulmak i\u00e7in kullan\u0131lan bir sorgu dilidir. XPath&#8217;in XML belgeleri i\u00e7in yapt\u0131\u011f\u0131 gibi, JSONPath de JSON belgeleri i\u00e7in benzer bir i\u015flevsellik sunar. Ancak, JSON&#8217;un daha basit yap\u0131s\u0131na uygun olarak, JSONPath&#8217;in s\u00f6zdizimi genellikle XPath&#8217;ten daha az karma\u015f\u0131kt\u0131r.<\/p>\n<p>JSONPath&#8217;in temel s\u00f6zdizimi elemanlar\u0131 \u015funlard\u0131r:<br \/>\n*   <code>$<\/code>: K\u00f6k eleman\u0131 temsil eder. Sorgular her zaman bu sembolle ba\u015flar.<br \/>\n*   <code>.<\/code> (nokta notasyonu): Bir nesnenin alt eleman\u0131na eri\u015fmek i\u00e7in kullan\u0131l\u0131r (\u00f6rn. <code>$.store.book<\/code>).<br \/>\n*   <code>[]<\/code> (k\u00f6\u015feli parantez notasyonu): Bir dizinin elemanlar\u0131na veya bir nesnenin anahtarlar\u0131na eri\u015fmek i\u00e7in kullan\u0131l\u0131r. Ayr\u0131ca filtreleme ve dilimleme i\u00e7in de kullan\u0131l\u0131r (\u00f6rn. <code>$.store.book[0]<\/code>).<br \/>\n<em>   <code><\/em><\/code>: T\u00fcm elemanlar\u0131 se\u00e7mek i\u00e7in kullan\u0131l\u0131r (\u00f6rn. <code>$.store.book[*]<\/code>).<br \/>\n*   <code>..<\/code> (recursive descent): JSON yap\u0131s\u0131n\u0131n herhangi bir derinli\u011findeki bir eleman\u0131 bulmak i\u00e7in kullan\u0131l\u0131r (\u00f6rn. <code>$..author<\/code>).<br \/>\n*   <code>?()<\/code>: Filtre ifadelerini tan\u0131mlamak i\u00e7in kullan\u0131l\u0131r. \u0130\u00e7indeki ifade <code>true<\/code> d\u00f6nen elemanlar\u0131 se\u00e7er (\u00f6rn. <code>$.store.book[?(@.price < 10)]<\/code>).<br \/>\n*   <code>@<\/code>: Filtre ifadeleri i\u00e7inde mevcut eleman\u0131 temsil eder.<\/p>\n<h3>Python'da JSONPath Ortam\u0131: <code>jsonpath-ng<\/code><\/h3>\n<p>Python ekosisteminde JSONPath uygulamalar\u0131 i\u00e7in birka\u00e7 k\u00fct\u00fcphane bulunmaktad\u0131r. Bunlar aras\u0131nda <code>jsonpath-rw<\/code>, <code>jsonpath<\/code>, ve <code>jsonpath-ng<\/code> \u00f6ne \u00e7\u0131kar. Bu makalede, g\u00fc\u00e7l\u00fc \u00f6zellik setleri, iyi bak\u0131m\u0131 ve esnek API'si nedeniyle <code>jsonpath-ng<\/code> k\u00fct\u00fcphanesini kullanaca\u011f\u0131z. <code>jsonpath-ng<\/code>, hem standart JSONPath s\u00f6zdizimini destekler hem de regex filtreleme gibi ek \u00f6zellikler sunar.<\/p>\n<h4>Kurulum<\/h4>\n<p><code>jsonpath-ng<\/code> k\u00fct\u00fcphanesini kurmak i\u00e7in pip kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">pip install jsonpath-ng<\/code><\/pre>\n<h4>Temel Kullan\u0131m Deseni<\/h4>\n<p><code>jsonpath-ng<\/code> ile JSONPath ifadelerini kullanman\u0131n temel ad\u0131mlar\u0131 \u015funlard\u0131r:<br \/>\n1.  <code>jsonpath_ng<\/code> mod\u00fcl\u00fcnden <code>jsonpath<\/code> ve <code>parse<\/code> fonksiyonlar\u0131n\u0131 i\u00e7e aktar\u0131n.<br \/>\n2.  Bir JSONPath ifadesini bir <code>JsonPath<\/code> nesnesine ayr\u0131\u015ft\u0131rmak i\u00e7in <code>parse()<\/code> fonksiyonunu kullan\u0131n.<br \/>\n3.  Ayr\u0131\u015ft\u0131r\u0131lm\u0131\u015f <code>JsonPath<\/code> nesnesinin <code>find()<\/code> metodunu, sorgulamak istedi\u011finiz JSON verisiyle \u00e7a\u011f\u0131r\u0131n. Bu metod, bulunan her e\u015fle\u015fme i\u00e7in bir <code>Datum<\/code> nesneleri listesi d\u00f6nd\u00fcr\u00fcr.<br \/>\n4.  <code>Datum<\/code> nesnesinin <code>value<\/code> \u00f6zelli\u011fini kullanarak e\u015fle\u015fen veriye eri\u015fin.<\/p>\n<p>T\u00fcm \u00f6rneklerimizde a\u015fa\u011f\u0131daki \u00f6rnek JSON verisini kullanaca\u011f\u0131z:<\/p>\n<pre><code class=\"language-json\">{\n  \"store\": {\n    \"book\": [\n      {\n        \"category\": \"reference\",\n        \"author\": \"Nigel Rees\",\n        \"title\": \"Sayings of the Century\",\n        \"price\": 8.95\n      },\n      {\n        \"category\": \"fiction\",\n        \"author\": \"Evelyn Waugh\",\n        \"title\": \"Sword of Honour\",\n        \"price\": 12.99\n      },\n      {\n        \"category\": \"fiction\",\n        \"author\": \"Herman Melville\",\n        \"title\": \"Moby Dick\",\n        \"isbn\": \"0-553-21311-3\",\n        \"price\": 8.99\n      },\n      {\n        \"category\": \"fiction\",\n        \"author\": \"J. R. R. Tolkien\",\n        \"title\": \"The Lord of the Rings\",\n        \"isbn\": \"0-395-19395-8\",\n        \"price\": 22.99\n      }\n    ],\n    \"bicycle\": {\n      \"color\": \"red\",\n      \"price\": 19.95\n    }\n  },\n  \"expensive\": 10\n}<\/code><\/pre>\n<p>Bu JSON verisini Python'da bir s\u00f6zl\u00fck olarak temsil edelim:<\/p>\n<pre><code class=\"language-python\">import json\nfrom jsonpath_ng import jsonpath, parse\n\ndata = {\n  \"store\": {\n    \"book\": [\n      {\n        \"category\": \"reference\",\n        \"author\": \"Nigel Rees\",\n        \"title\": \"Sayings of the Century\",\n        \"price\": 8.95\n      },\n      {\n        \"category\": \"fiction\",\n        \"author\": \"Evelyn Waugh\",\n        \"title\": \"Sword of Honour\",\n        \"price\": 12.99\n      },\n      {\n        \"category\": \"fiction\",\n        \"author\": \"Herman Melville\",\n        \"title\": \"Moby Dick\",\n        \"isbn\": \"0-553-21311-3\",\n        \"price\": 8.99\n      },\n      {\n        \"category\": \"fiction\",\n        \"author\": \"J. R. R. Tolkien\",\n        \"title\": \"The Lord of the Rings\",\n        \"isbn\": \"0-395-19395-8\",\n        \"price\": 22.99\n      }\n    ],\n    \"bicycle\": {\n      \"color\": \"red\",\n      \"price\": 19.95\n    }\n  },\n  \"expensive\": 10\n}<\/code><\/pre>\n<h3>Temel JSONPath Operat\u00f6rleri ve Python \u00d6rnekleri<\/h3>\n<h4>K\u00f6k Eleman (<code>$<\/code>)<\/h4>\n<p>*   <strong><code>$<\/code><\/strong>: T\u00fcm JSON belgesini se\u00e7er.<\/p>\n<pre><code class=\"language-python\">jsonpath_expression = parse('$')\n    match = jsonpath_expression.find(data)\n    print(\"T\u00fcm belge:\", match[0].value)\n    # \u00c7\u0131kt\u0131: {'store': ..., 'expensive': 10}<\/code><\/pre>\n<p>*   <strong><code>$.store<\/code><\/strong>: K\u00f6k eleman\u0131n <code>store<\/code> anahtar\u0131n\u0131 se\u00e7er.<\/p>\n<pre><code class=\"language-python\">jsonpath_expression = parse('$.store')\n    match = jsonpath_expression.find(data)\n    print(\"Ma\u011faza objesi:\", match[0].value)\n    # \u00c7\u0131kt\u0131: {'book': [...], 'bicycle': {...}}<\/code><\/pre>\n<h4>Nokta ve K\u00f6\u015feli Parantez (<code>.<\/code> ve <code>[]<\/code>)<\/h4>\n<p>*   <strong><code>$.store.book<\/code><\/strong>: <code>store<\/code> objesi i\u00e7indeki <code>book<\/code> anahtar\u0131na eri\u015fir, bu bir kitap listesidir.<\/p>\n<pre><code class=\"language-python\">jsonpath_expression = parse('$.store.book')\n    matches = jsonpath_expression.find(data)\n    print(\"T\u00fcm kitaplar:\", [m.value for m in matches])\n    # \u00c7\u0131kt\u0131: [[{'category': 'reference', 'author': 'Nigel Rees', ...}]] (liste i\u00e7inde liste)<\/code><\/pre>\n<p>*   <strong><code>$.store.book[0]<\/code><\/strong>: Kitap listesindeki ilk kitab\u0131 se\u00e7er (indeks 0).<\/p>\n<pre><code class=\"language-python\">jsonpath_expression = parse('$.store.book[0]')\n    match = jsonpath_expression.find(data)\n    print(\"\u0130lk kitap:\", match[0].value)\n    # \u00c7\u0131kt\u0131: {'category': 'reference', 'author': 'Nigel Rees', ...}<\/code><\/pre>\n<p>*   <strong><code>$.store.book[0].title<\/code><\/strong>: \u0130lk kitab\u0131n <code>title<\/code> \u00f6zelli\u011fini se\u00e7er.<\/p>\n<pre><code class=\"language-python\">jsonpath_expression = parse('$.store.book[0].title')\n    match = jsonpath_expression.find(data)\n    print(\"\u0130lk kitab\u0131n ba\u015fl\u0131\u011f\u0131:\", match[0].value)\n    # \u00c7\u0131kt\u0131: Sayings of the Century<\/code><\/pre>\n<p><em>   <strong><code>$.store.book[<\/em>].author<\/code><\/strong>: T\u00fcm kitaplar\u0131n <code>author<\/code> \u00f6zelliklerini se\u00e7er. <code>*<\/code> joker karakteri, bir dizideki t\u00fcm \u00f6\u011feleri veya bir nesnedeki t\u00fcm anahtarlar\u0131 temsil eder.<\/p>\n<pre><code class=\"language-python\">jsonpath_expression = parse('$.store.book[*].author')\n    matches = jsonpath_expression.find(data)\n    print(\"T\u00fcm yazarlar:\", [m.value for m in matches])\n    # \u00c7\u0131kt\u0131: ['Nigel Rees', 'Evelyn Waugh', 'Herman Melville', 'J. R. R. Tolkien']<\/code><\/pre>\n<p>*   <strong><code>$.store.bicycle.color<\/code><\/strong>: Bisiklet objesinin <code>color<\/code> \u00f6zelli\u011fini se\u00e7er.<\/p>\n<pre><code class=\"language-python\">jsonpath_expression = parse('$.store.bicycle.color')\n    match = jsonpath_expression.find(data)\n    print(\"Bisikletin rengi:\", match[0].value)\n    # \u00c7\u0131kt\u0131: red<\/code><\/pre>\n<h4>T\u00fcm Elemanlar (<code>*<\/code>)<\/h4>\n<p><em>   <strong><code>$.store.<\/em><\/code><\/strong>: <code>store<\/code> objesi i\u00e7indeki t\u00fcm do\u011frudan alt elemanlar\u0131 (hem <code>book<\/code> listesi hem de <code>bicycle<\/code> objesi) se\u00e7er.<\/p>\n<pre><code class=\"language-python\">jsonpath_expression = parse('$.store.*')\n    matches = jsonpath_expression.find(data)\n    print(\"Store i\u00e7indeki t\u00fcm elemanlar:\")\n    for m in matches:\n        print(m.value)\n    # \u00c7\u0131kt\u0131:\n    # [{'category': 'reference', ...}, {'category': 'fiction', ...}, ...] (book listesi)\n    # {'color': 'red', 'price': 19.95} (bicycle objesi)<\/code><\/pre>\n<p><em>   <strong><code>$.store.book[<\/em>]<\/code><\/strong>: <code>book<\/code> dizisindeki t\u00fcm kitap objelerini se\u00e7er. Bu, <code>$.store.book<\/code> ile benzer bir sonu\u00e7 verir ancak her bir kitab\u0131 ayr\u0131 bir e\u015fle\u015fme olarak d\u00f6nd\u00fcr\u00fcr.<\/p>\n<pre><code class=\"language-python\">jsonpath_expression = parse('$.store.book[*]')\n    matches = jsonpath_expression.find(data)\n    print(\"T\u00fcm kitap objeleri:\")\n    for m in matches:\n        print(m.value['title']) # Sadece ba\u015fl\u0131klar\u0131n\u0131 yazd\u0131ral\u0131m\n    # \u00c7\u0131kt\u0131:\n    # Sayings of the Century\n    # Sword of Honour\n    # Moby Dick\n    # The Lord of the Rings<\/code><\/pre>\n<h4>Recursive Descent (<code>..<\/code>)<\/h4>\n<p>*   <strong><code>$..author<\/code><\/strong>: JSON belgesinin herhangi bir derinli\u011findeki t\u00fcm <code>author<\/code> anahtarlar\u0131n\u0131 se\u00e7er.<\/p>\n<pre><code class=\"language-python\">jsonpath_expression = parse('$..author')\n    matches = jsonpath_expression.find(data)\n    print(\"T\u00fcm yazarlar (derinlikten ba\u011f\u0131ms\u0131z):\", [m.value for m in matches])\n    # \u00c7\u0131kt\u0131: ['Nigel Rees', 'Evelyn Waugh', 'Herman Melville', 'J. R. R. Tolkien']<\/code><\/pre>\n<p>*   <strong><code>$..price<\/code><\/strong>: JSON belgesinin herhangi bir derinli\u011findeki t\u00fcm <code>price<\/code> anahtarlar\u0131n\u0131 se\u00e7er.<\/p>\n<pre><code class=\"language-python\">jsonpath_expression = parse('$..price')\n    matches = jsonpath_expression.find(data)\n    print(\"T\u00fcm fiyatlar:\", [m.value for m in matches])\n    # \u00c7\u0131kt\u0131: [8.95, 12.99, 8.99, 22.99, 19.95]<\/code><\/pre>\n<p>*   <strong><code>$.store..price<\/code><\/strong>: Yaln\u0131zca <code>store<\/code> objesi i\u00e7indeki t\u00fcm <code>price<\/code> anahtarlar\u0131n\u0131 se\u00e7er.<\/p>\n<pre><code class=\"language-python\">jsonpath_expression = parse('$.store..price')\n    matches = jsonpath_expression.find(data)\n    print(\"Store i\u00e7indeki t\u00fcm fiyatlar:\", [m.value for m in matches])\n    # \u00c7\u0131kt\u0131: [8.95, 12.99, 8.99, 22.99, 19.95] (ayn\u0131, \u00e7\u00fcnk\u00fc ba\u015fka price yok)<\/code><\/pre>\n<h4>Dizi Dilimleme (Array Slicing) (<code>[start:end:step]<\/code>)<\/h4>\n<p>*   <strong><code>$.store.book[0:2]<\/code><\/strong>: Kitap listesinden ilk iki kitab\u0131 se\u00e7er (0'dan ba\u015flay\u0131p 2'ye kadar, 2 dahil de\u011fil).<\/p>\n<pre><code class=\"language-python\">jsonpath_expression = parse('$.store.book[0:2]')\n    matches = jsonpath_expression.find(data)\n    print(\"\u0130lk iki kitap:\")\n    for m in matches:\n        print(m.value['title'])\n    # \u00c7\u0131kt\u0131:\n    # Sayings of the Century\n    # Sword of Honour<\/code><\/pre>\n<p>*   <strong><code>$.store.book[-1]<\/code><\/strong>: Kitap listesindeki son kitab\u0131 se\u00e7er.<\/p>\n<pre><code class=\"language-python\">jsonpath_expression = parse('$.store.book[-1]')\n    match = jsonpath_expression.find(data)\n    print(\"Son kitap:\", match[0].value['title'])\n    # \u00c7\u0131kt\u0131: The Lord of the Rings<\/code><\/pre>\n<p>*   <strong><code>$.store.book[1:]<\/code><\/strong>: \u0130kinci kitaptan ba\u015flayarak t\u00fcm kitaplar\u0131 se\u00e7er.<\/p>\n<pre><code class=\"language-python\">jsonpath_expression = parse('$.store.book[1:]')\n    matches = jsonpath_expression.find(data)\n    print(\"\u0130kinci kitaptan sonras\u0131:\")\n    for m in matches:\n        print(m.value['title'])\n    # \u00c7\u0131kt\u0131:\n    # Sword of Honour\n    # Moby Dick\n    # The Lord of the Rings<\/code><\/pre>\n<p>*   <strong><code>$.store.book[::2]<\/code><\/strong>: Her iki kitaptan birini se\u00e7er (0, 2, 4...).<\/p>\n<pre><code class=\"language-python\">jsonpath_expression = parse('$.store.book[::2]')\n    matches = jsonpath_expression.find(data)\n    print(\"Her iki kitaptan biri:\")\n    for m in matches:\n        print(m.value['title'])\n    # \u00c7\u0131kt\u0131:\n    # Sayings of the Century\n    # Moby Dick<\/code><\/pre>\n<h4>Union Operat\u00f6r\u00fc (<code>[,]<\/code>)<\/h4>\n<p>*   <strong><code>$.store.book[0,2]<\/code><\/strong>: Kitap listesindeki ilk ve \u00fc\u00e7\u00fcnc\u00fc kitab\u0131 se\u00e7er.<\/p>\n<pre><code class=\"language-python\">jsonpath_expression = parse('$.store.book[0,2]')\n    matches = jsonpath_expression.find(data)\n    print(\"Birinci ve \u00fc\u00e7\u00fcnc\u00fc kitap:\")\n    for m in matches:\n        print(m.value['title'])\n    # \u00c7\u0131kt\u0131:\n    # Sayings of the Century\n    # Moby Dick<\/code><\/pre>\n<p>*   <strong><code>$.store.book[0].author, $.store.book[1].author<\/code><\/strong>: \u0130lk iki kitab\u0131n yazarlar\u0131n\u0131 ayr\u0131 ayr\u0131 se\u00e7er. Birden fazla path ifadesini virg\u00fclle ay\u0131rarak birle\u015ftirebilirsiniz.<\/p>\n<pre><code class=\"language-python\">jsonpath_expression = parse('$.store.book[0].author, $.store.book[1].author')\n    matches = jsonpath_expression.find(data)\n    print(\"\u0130lk iki kitab\u0131n yazarlar\u0131:\", [m.value for m in matches])\n    # \u00c7\u0131kt\u0131: ['Nigel Rees', 'Evelyn Waugh']<\/code><\/pre>\n<h3>Geli\u015fmi\u015f JSONPath \u00d6zellikleri ve Filtrelemeler<\/h3>\n<h4>Filtre \u0130fadeleri (<code>?()<\/code>)<\/h4>\n<p>Filtre ifadeleri, bir dizideki \u00f6\u011feleri veya bir nesnedeki \u00f6zellikleri belirli ko\u015fullara g\u00f6re se\u00e7mek i\u00e7in kullan\u0131l\u0131r. <code>@<\/code> sembol\u00fc, mevcut \u00f6\u011feyi temsil eder.<\/p>\n<p>*   <strong><code>$.store.book[?(@.price < 10)]<\/code><\/strong>: Fiyat\u0131 10'dan az olan t\u00fcm kitaplar\u0131 se\u00e7er.<\/p>\n<pre><code class=\"language-python\">jsonpath_expression = parse('$.store.book[?(@.price < 10)]')\n    matches = jsonpath_expression.find(data)\n    print(\"Fiyat\u0131 10'dan az olan kitaplar:\")\n    for m in matches:\n        print(f\"{m.value['title']} ({m.value['price']})\")\n    # \u00c7\u0131kt\u0131:\n    # Sayings of the Century (8.95)\n    # Moby Dick (8.99)<\/code><\/pre>\n<p>*   <strong><code>$.store.book[?(@.category == 'fiction' && @.price > 10)]<\/code><\/strong>: Kategorisi 'fiction' olan ve fiyat\u0131 10'dan b\u00fcy\u00fck olan kitaplar\u0131 se\u00e7er.<\/p>\n<pre><code class=\"language-python\">jsonpath_expression = parse('$.store.book[?(@.category == \"fiction\" && @.price > 10)]')\n    matches = jsonpath_expression.find(data)\n    print(\"Kategorisi 'fiction' ve fiyat\u0131 10'dan b\u00fcy\u00fck kitaplar:\")\n    for m in matches:\n        print(f\"{m.value['title']} ({m.value['price']})\")\n    # \u00c7\u0131kt\u0131:\n    # Sword of Honour (12.99)\n    # The Lord of the Rings (22.99)<\/code><\/pre>\n<p>*   <strong><code>$.store.book[?(@.isbn)]<\/code><\/strong>: <code>isbn<\/code> anahtar\u0131 olan t\u00fcm kitaplar\u0131 se\u00e7er. Bir anahtar\u0131n varl\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in kullan\u0131l\u0131r.<\/p>\n<pre><code class=\"language-python\">jsonpath_expression = parse('$.store.book[?(@.isbn)]')\n    matches = jsonpath_expression.find(data)\n    print(\"ISBN'i olan kitaplar:\")\n    for m in matches:\n        print(m.value['title'])\n    # \u00c7\u0131kt\u0131:\n    # Moby Dick\n    # The Lord of the Rings<\/code><\/pre>\n<p><em>   <strong><code>$.store.book[?(@.author =~ \/.<\/em>Tolkien.*\/i)]<\/code><\/strong>: Yazar ad\u0131nda \"Tolkien\" ge\u00e7en (b\u00fcy\u00fck\/k\u00fc\u00e7\u00fck harf duyars\u0131z) t\u00fcm kitaplar\u0131 se\u00e7er. <code>jsonpath-ng<\/code> k\u00fct\u00fcphanesi regex deste\u011fi sunar.<\/p>\n<pre><code class=\"language-python\">jsonpath_expression = parse('$.store.book[?(@.author =~ \/.<em>Tolkien.<\/em>\/i)]')\n    matches = jsonpath_expression.find(data)\n    print(\"Yazar ad\u0131 'Tolkien' i\u00e7eren kitaplar:\")\n    for m in matches:\n        print(m.value['title'])\n    # \u00c7\u0131kt\u0131: The Lord of the Rings<\/code><\/pre>\n<p>*   <strong><code>$.store.book[?(@.price > $.expensive)]<\/code><\/strong>: Fiyat\u0131, JSON belgesindeki <code>expensive<\/code> anahtar\u0131n\u0131n de\u011ferinden b\u00fcy\u00fck olan kitaplar\u0131 se\u00e7er. Bu, filtre i\u00e7inde ba\u015fka bir JSONPath ifadesi kullanma yetene\u011fini g\u00f6sterir.<\/p>\n<pre><code class=\"language-python\">jsonpath_expression = parse('$.store.book[?(@.price > $.expensive)]')\n    matches = jsonpath_expression.find(data)\n    print(\"Fiyat\u0131 'expensive' de\u011ferinden b\u00fcy\u00fck olan kitaplar:\")\n    for m in matches:\n        print(f\"{m.value['title']} ({m.value['price']})\")\n    # \u00c7\u0131kt\u0131:\n    # Sword of Honour (12.99)\n    # The Lord of the Rings (22.99)\n    # Bisiklet de dahil olabilir e\u011fer fiyat\u0131 uygunsa, ancak path sadece kitaplar\u0131 hedefledi.<\/code><\/pre>\n<h4>\u0130\u00e7 \u0130\u00e7e Filtreleme ve Zincirleme<\/h4>\n<p>JSONPath ifadelerini zincirleyerek daha karma\u015f\u0131k sorgular olu\u015fturabilirsiniz.<br \/>\n*   <strong><code>$.store.book[?(@.category == 'fiction')][?(@.price > 10)]<\/code><\/strong>: Kategorisi 'fiction' olan kitaplar\u0131 bulur, ard\u0131ndan bu sonu\u00e7lar aras\u0131ndan fiyat\u0131 10'dan b\u00fcy\u00fck olanlar\u0131 se\u00e7er.<\/p>\n<pre><code class=\"language-python\">jsonpath_expression = parse('$.store.book[?(@.category == \"fiction\")][?(@.price > 10)]')\n    matches = jsonpath_expression.find(data)\n    print(\"Kategorisi 'fiction' olan ve fiyat\u0131 10'dan b\u00fcy\u00fck kitaplar (zincirleme):\")\n    for m in matches:\n        print(f\"{m.value['title']} ({m.value['price']})\")\n    # \u00c7\u0131kt\u0131:\n    # Sword of Honour (12.99)\n    # The Lord of the Rings (22.99)<\/code><\/pre>\n<h4>Birden Fazla Alan\u0131 \u00c7ekme<\/h4>\n<p>Bazen bir listedeki her bir \u00f6\u011feden birden fazla belirli alan\u0131 \u00e7ekmek isteyebilirsiniz. <code>jsonpath-ng<\/code> k\u00fct\u00fcphanesi, k\u00f6\u015feli parantez i\u00e7inde virg\u00fclle ayr\u0131lm\u0131\u015f anahtar listesi kullanarak bunu destekler.<br \/>\n<em>   <strong><code>$.store.book[<\/em>]['title', 'author']<\/code><\/strong>: T\u00fcm kitaplar\u0131n ba\u015fl\u0131k ve yazarlar\u0131n\u0131 \u00e7eker.<\/p>\n<pre><code class=\"language-python\">jsonpath_expression = parse(\"$.store.book[*]['title', 'author']\")\n    matches = jsonpath_expression.find(data)\n    print(\"T\u00fcm kitaplar\u0131n ba\u015fl\u0131k ve yazarlar\u0131:\")\n    for m in matches:\n        # jsonpath-ng, bu durumda bir liste i\u00e7inde s\u00f6zl\u00fckler d\u00f6nd\u00fcr\u00fcr.\n        # Her s\u00f6zl\u00fckte sadece istenen anahtarlar bulunur.\n        print(m.value)\n    # \u00c7\u0131kt\u0131:\n    # {'title': 'Sayings of the Century', 'author': 'Nigel Rees'}\n    # {'title': 'Sword of Honour', 'author': 'Evelyn Waugh'}\n    # {'title': 'Moby Dick', 'author': 'Herman Melville'}\n    # {'title': 'The Lord of the Rings', 'author': 'J. R. R. Tolkien'}<\/code><\/pre>\n<h3><code>jsonpath-ng<\/code> K\u00fct\u00fcphanesinin Detaylar\u0131 ve \u0130pu\u00e7lar\u0131<\/h3>\n<p><code>jsonpath-ng<\/code>'nin <code>find()<\/code> metodu, <code>Datum<\/code> nesnelerinin bir listesini d\u00f6nd\u00fcr\u00fcr. Her <code>Datum<\/code> nesnesi, e\u015fle\u015fen \u00f6\u011fe hakk\u0131nda ek bilgi i\u00e7erir:<br \/>\n*   <code>match.value<\/code>: E\u015fle\u015fen verinin kendisi (Python s\u00f6zl\u00fc\u011f\u00fc, liste, string, say\u0131 vb.).<br \/>\n*   <code>match.path<\/code>: E\u015fle\u015fen \u00f6\u011feye giden JSONPath ifadesi.<br \/>\n*   <code>match.map<\/code>: JSON belgesindeki e\u015fle\u015fen \u00f6\u011fenin tam yolu.<\/p>\n<pre><code class=\"language-python\">jsonpath_expression = parse('$.store.book[0].title')\nmatches = jsonpath_expression.find(data)\nif matches:\n    match = matches[0]\n    print(f\"De\u011fer: {match.value}\")\n    print(f\"Path ifadesi: {match.path}\")\n    print(f\"Harita yolu: {match.map}\")\n<h2>\u00c7\u0131kt\u0131:<\/h2>\n<h2>De\u011fer: Sayings of the Century<\/h2>\n<h2>Path ifadesi: Child(This(), Fields('title'))<\/h2>\n<h2>Harita yolu: Child(Child(Child(Root(), Fields('store')), Fields('book')), Index(0))<\/code><\/pre>\n<\/h2>\n<h4>Bulunamayan Path'ler ve Hata Y\u00f6netimi<\/h4>\n<p>E\u011fer bir JSONPath ifadesi JSON belgesinde hi\u00e7bir e\u015fle\u015fme bulamazsa, <code>find()<\/code> metodu bo\u015f bir liste d\u00f6nd\u00fcr\u00fcr. Bu, hatalar\u0131 ele almay\u0131 kolayla\u015ft\u0131r\u0131r, \u00e7\u00fcnk\u00fc genellikle bir <code>if matches:<\/code> kontrol\u00fc ile durumu y\u00f6netebilirsiniz.<\/p>\n<p>Ge\u00e7ersiz bir JSONPath ifadesi kullanmaya \u00e7al\u0131\u015f\u0131rsan\u0131z (\u00f6rne\u011fin, s\u00f6zdizimi hatas\u0131), <code>parse()<\/code> fonksiyonu <code>jsonpath_ng.exceptions.JsonPathLexerError<\/code> veya <code>jsonpath_ng.exceptions.JsonPathParserError<\/code> gibi istisnalar f\u0131rlatacakt\u0131r. Bu istisnalar\u0131 <code>try-except<\/code> bloklar\u0131 ile yakalayarak uygulaman\u0131z\u0131n \u00e7\u00f6kmesini \u00f6nleyebilirsiniz.<\/p>\n<pre><code class=\"language-python\">try:\n    jsonpath_expression = parse('$.invalid.path')\n    matches = jsonpath_expression.find(data)\n    if not matches:\n        print(\"Path bulunamad\u0131, bo\u015f liste d\u00f6nd\u00fcr\u00fcld\u00fc.\")\nexcept Exception as e:\n    print(f\"Bir hata olu\u015ftu: {e}\")<\/code><\/pre>\n<h3>Pratik Kullan\u0131m Senaryolar\u0131<\/h3>\n<p>JSONPath'in Python'daki pratik kullan\u0131m alanlar\u0131 olduk\u00e7a geni\u015ftir:<\/p>\n<p>*   <strong>REST API Yan\u0131tlar\u0131n\u0131 \u0130\u015fleme<\/strong>: Web servislerinden al\u0131nan karma\u015f\u0131k JSON yan\u0131tlar\u0131ndan belirli alanlar\u0131 kolayca ay\u0131klamak. \u00d6rne\u011fin, bir hava durumu API'sinden sadece s\u0131cakl\u0131k de\u011ferini \u00e7ekmek.<br \/>\n*   <strong>B\u00fcy\u00fck JSON Log Dosyalar\u0131ndan Bilgi \u00c7\u0131karma<\/strong>: Uygulama loglar\u0131n\u0131 JSON format\u0131nda tutuyorsan\u0131z, belirli hata kodlar\u0131n\u0131, kullan\u0131c\u0131 ID'lerini veya zaman damgalar\u0131n\u0131 h\u0131zla filtrelemek i\u00e7in JSONPath kullanabilirsiniz.<br \/>\n*   <strong>Yap\u0131land\u0131r\u0131lm\u0131\u015f Konfig\u00fcrasyon Dosyalar\u0131n\u0131 Okuma<\/strong>: Uygulamalar\u0131n\u0131z\u0131n karma\u015f\u0131k JSON tabanl\u0131 konfig\u00fcrasyon dosyalar\u0131ndan belirli ayarlar\u0131 dinamik olarak \u00e7ekmek.<br \/>\n*   <strong>Veri D\u00f6n\u00fc\u015ft\u00fcrme ve Raporlama<\/strong>: B\u00fcy\u00fck bir JSON veri setinden raporlama veya ba\u015fka bir formata d\u00f6n\u00fc\u015ft\u00fcrme i\u00e7in gerekli olan belirli veri noktalar\u0131n\u0131 \u00e7ekmek.<br \/>\n*   <strong>NoSQL Veritaban\u0131 Sorgular\u0131<\/strong>: Baz\u0131 NoSQL veritabanlar\u0131 (\u00f6rne\u011fin MongoDB), JSONPath benzeri sorgu dillerini destekler. JSONPath \u00f6\u011frenmek, bu veritabanlar\u0131yla \u00e7al\u0131\u015f\u0131rken de faydal\u0131 olacakt\u0131r.<\/p>\n<h3>JSONPath Alternatifleri ve Performans<\/h3>\n<p>JSONPath, \u00e7o\u011fu senaryo i\u00e7in m\u00fckemmel bir ara\u00e7 olsa da, baz\u0131 durumlarda alternatifleri veya ek ara\u00e7lar\u0131 de\u011ferlendirmek faydal\u0131 olabilir.<\/p>\n<p>*   <strong>JMESPath<\/strong>: JSONPath'e benzer ba\u015fka bir JSON sorgu dilidir. \u00d6zellikle AWS CLI'da yayg\u0131n olarak kullan\u0131l\u0131r. JSONPath'ten biraz daha fazla fonksiyonel yetenek sunar (\u00f6rne\u011fin, <code>sum<\/code>, <code>min<\/code>, <code>max<\/code> gibi fonksiyonlar). E\u011fer AWS ekosisteminde \u00e7al\u0131\u015f\u0131yorsan\u0131z veya daha fonksiyonel bir sorgu diline ihtiyac\u0131n\u0131z varsa JMESPath'i inceleyebilirsiniz.<br \/>\n*   <strong>Manuel Python Parsing<\/strong>: JSONPath kullanmak yerine, Python'\u0131n yerle\u015fik s\u00f6zl\u00fck ve liste manip\u00fclasyonlar\u0131yla da verilere ula\u015fabilirsiniz. Ancak bu, karma\u015f\u0131k yap\u0131lar i\u00e7in daha uzun, daha az okunabilir ve daha az s\u00fcrd\u00fcr\u00fclebilir kodla sonu\u00e7lan\u0131r. Basit, s\u0131\u011f JSON'lar i\u00e7in yeterli olabilir.<br \/>\n*   <strong>Stream Parsing (\u00f6rn. <code>ijson<\/code>)<\/strong>: \u00c7ok b\u00fcy\u00fck JSON dosyalar\u0131yla (GB'lar mertebesinde) \u00e7al\u0131\u015f\u0131rken, t\u00fcm dosyay\u0131 belle\u011fe y\u00fcklemek kaynak sorunlar\u0131na yol a\u00e7abilir. <code>ijson<\/code> gibi k\u00fct\u00fcphaneler, JSON verilerini par\u00e7a par\u00e7a okuyarak ve i\u015fleyerek bu sorunu \u00e7\u00f6zer. Bu senaryolarda JSONPath do\u011frudan uygulanamaz, ancak <code>ijson<\/code> ile ak\u0131\u015f halindeki veriden belirli yollar\u0131 dinleyerek JSONPath benzeri bir mant\u0131k uygulayabilirsiniz.<\/p>\n<p><strong>Performans<\/strong>: <code>jsonpath-ng<\/code> k\u00fct\u00fcphanesi, k\u00fc\u00e7\u00fck ve orta boyutlu JSON belgeleri i\u00e7in genellikle yeterince h\u0131zl\u0131d\u0131r. Ancak \u00e7ok b\u00fcy\u00fck belgelerde (birka\u00e7 y\u00fcz MB'tan fazla) performans darbo\u011fazlar\u0131 ya\u015fanabilir. Bu t\u00fcr durumlarda, sorgu karma\u015f\u0131kl\u0131\u011f\u0131n\u0131 ve JSON belgesinin boyutunu g\u00f6z \u00f6n\u00fcnde bulundurarak farkl\u0131 yakla\u015f\u0131mlar\u0131 (\u00f6nbellekleme, veritaban\u0131 kullan\u0131m\u0131 veya stream parsing) de\u011ferlendirmek \u00f6nemlidir.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Python JSONPath, \u00f6zellikle <code>jsonpath-ng<\/code> gibi g\u00fc\u00e7l\u00fc k\u00fct\u00fcphaneler arac\u0131l\u0131\u011f\u0131yla, karma\u015f\u0131k JSON verilerinden bilgi \u00e7ekme s\u00fcrecini radikal bir \u015fekilde basitle\u015ftiren vazge\u00e7ilmez bir ara\u00e7t\u0131r. Bu makalede ele ald\u0131\u011f\u0131m\u0131z temel operat\u00f6rler (<code>$<\/code>, <code>.<\/code>, <code>[]<\/code>, <code>*<\/code>, <code>..<\/code>) ve geli\u015fmi\u015f \u00f6zellikler (dilimleme, filtreleme, regex) sayesinde, her t\u00fcrl\u00fc JSON yap\u0131s\u0131nda istedi\u011finiz verilere kolayca ula\u015fabilirsiniz.<\/p>\n<p>JSONPath'i \u00f6\u011frenmek, API'larla \u00e7al\u0131\u015fan, log dosyalar\u0131n\u0131 analiz eden veya yap\u0131land\u0131r\u0131lm\u0131\u015f konfig\u00fcrasyonlarla u\u011fra\u015fan her Python geli\u015ftiricisi i\u00e7in de\u011ferli bir beceridir. Kodunuzu daha k\u0131sa, daha okunabilir ve daha az hataya a\u00e7\u0131k hale getirerek geli\u015ftirme verimlili\u011finizi art\u0131r\u0131r. Pratik yaparak ve farkl\u0131 JSONPath ifadeleriyle denemeler yaparak bu g\u00fc\u00e7l\u00fc arac\u0131 ustal\u0131kla kullanabilirsiniz. JSONPath, veri \u00e7ekme sanat\u0131n\u0131 parmaklar\u0131n\u0131z\u0131n ucuna getirir.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Python JSONPath \u00d6rnekleri: Veri \u00c7ekme Sanat\u0131\nGiri\u015f\nG\u00fcn\u00fcm\u00fcz\u00fcn yaz\u0131l\u0131m d\u00fcnyas\u0131nda, veri al\u0131\u015fveri\u015fi ve depolama formatlar\u0131 aras\u0131nda Jav","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1403],"tags":[],"class_list":{"0":"post-30960","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-python","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Python JSONPath \u00d6rnekleri: Veri \u00c7ekme Sanat\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/python-jsonpath-ornekleri-veri-cekme-sanati\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Python JSONPath \u00d6rnekleri: Veri \u00c7ekme Sanat\u0131\" \/>\n<meta property=\"og:description\" content=\"Python JSONPath \u00d6rnekleri: Veri \u00c7ekme Sanat\u0131 Giri\u015f G\u00fcn\u00fcm\u00fcz\u00fcn yaz\u0131l\u0131m d\u00fcnyas\u0131nda, veri al\u0131\u015fveri\u015fi ve depolama formatlar\u0131 aras\u0131nda Jav\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/python-jsonpath-ornekleri-veri-cekme-sanati\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-03T22:41:16+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/python-jsonpath-ornekleri-veri-cekme-sanati\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/python-jsonpath-ornekleri-veri-cekme-sanati\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Python JSONPath \u00d6rnekleri: Veri \u00c7ekme Sanat\u0131\",\"datePublished\":\"2025-10-03T22:41:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/python-jsonpath-ornekleri-veri-cekme-sanati\/\"},\"wordCount\":1897,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Python\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/python-jsonpath-ornekleri-veri-cekme-sanati\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/python-jsonpath-ornekleri-veri-cekme-sanati\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/python-jsonpath-ornekleri-veri-cekme-sanati\/\",\"name\":\"Python JSONPath \u00d6rnekleri: Veri \u00c7ekme Sanat\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-03T22:41:16+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/python-jsonpath-ornekleri-veri-cekme-sanati\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/python-jsonpath-ornekleri-veri-cekme-sanati\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/python-jsonpath-ornekleri-veri-cekme-sanati\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Python JSONPath \u00d6rnekleri: Veri \u00c7ekme Sanat\u0131\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Python JSONPath \u00d6rnekleri: Veri \u00c7ekme Sanat\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/python-jsonpath-ornekleri-veri-cekme-sanati\/","og_locale":"tr_TR","og_type":"article","og_title":"Python JSONPath \u00d6rnekleri: Veri \u00c7ekme Sanat\u0131","og_description":"Python JSONPath \u00d6rnekleri: Veri \u00c7ekme Sanat\u0131 Giri\u015f G\u00fcn\u00fcm\u00fcz\u00fcn yaz\u0131l\u0131m d\u00fcnyas\u0131nda, veri al\u0131\u015fveri\u015fi ve depolama formatlar\u0131 aras\u0131nda Jav","og_url":"https:\/\/fatihsoysal.com\/blog\/python-jsonpath-ornekleri-veri-cekme-sanati\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-03T22:41:16+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"16 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/python-jsonpath-ornekleri-veri-cekme-sanati\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/python-jsonpath-ornekleri-veri-cekme-sanati\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Python JSONPath \u00d6rnekleri: Veri \u00c7ekme Sanat\u0131","datePublished":"2025-10-03T22:41:16+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/python-jsonpath-ornekleri-veri-cekme-sanati\/"},"wordCount":1897,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Python"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/python-jsonpath-ornekleri-veri-cekme-sanati\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/python-jsonpath-ornekleri-veri-cekme-sanati\/","url":"https:\/\/fatihsoysal.com\/blog\/python-jsonpath-ornekleri-veri-cekme-sanati\/","name":"Python JSONPath \u00d6rnekleri: Veri \u00c7ekme Sanat\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-03T22:41:16+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/python-jsonpath-ornekleri-veri-cekme-sanati\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/python-jsonpath-ornekleri-veri-cekme-sanati\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/python-jsonpath-ornekleri-veri-cekme-sanati\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Python JSONPath \u00d6rnekleri: Veri \u00c7ekme Sanat\u0131"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30960","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=30960"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30960\/revisions"}],"predecessor-version":[{"id":30961,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30960\/revisions\/30961"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=30960"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=30960"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=30960"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}