Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah anda mengekstrak nilai bersarang daripada struktur JSON yang kompleks?

Bagaimanakah anda mengekstrak nilai bersarang daripada struktur JSON yang kompleks?

Linda Hamilton
Linda Hamiltonasal
2024-11-02 15:53:29693semak imbas

How do you extract nested values from a complex JSON structure?

Mengekstrak Nilai JSON Bersarang

Masalah:

Apabila menghuraikan data JSON, anda mungkin menghadapi struktur kompleks dan bersarang seperti ini:

<code class="json">{'name': 'ns1:timeSeriesResponseType',
 'declaredType': 'org.cuahsi.waterml.TimeSeriesResponseType',
 'scope': 'javax.xml.bind.JAXBElement$GlobalScope',
 'value': {'queryInfo': {'creationTime': 1349724919000,
                          'queryURL': 'http://waterservices.usgs.gov/nwis/iv/',
                          'criteria': {'locationParam': '[ALL:103232434]',
                                       'variableParam': '[00060, 00065]'},
                          'note': [{'value': '[ALL:103232434]',
                                    'title': 'filter:sites'},
                                   {'value': '[mode=LATEST, modifiedSince=null]',
                                    'title': 'filter:timeRange'},
                                   {'value': 'sdas01', 'title': 'server'}]}},
 'nil': False, 'globalScope': True, 'typeSubstituted': False}</code>

Anda ingin mengekstrak nilai tertentu, seperti medan 'creationTime'.

Penyelesaian:

1. Navigasi Struktur Data:

Untuk mengekstrak nilai 'creationTime', kita perlu menavigasi struktur bersarang menggunakan kekunci:

<code class="python">my_dict['key1']['key2']['key3']</code>

2. Contoh Kod:

Untuk mendapatkan nilai 'creationTime', gunakan kod berikut:

<code class="python">creation_time = my_dict['value']['queryInfo']['creationTime']</code>

3. Menentukan Laluan ke Data:

Untuk menentukan laluan ke elemen data tertentu, periksa struktur respons JSON:

  • Setiap pasangan nilai kunci dalam JSON struktur mewakili segmen laluan.
  • Untuk mengakses nilai bersarang, hanya gabungkan segmen laluan dengan '[]'.

4. Lebih Banyak Pendekatan Umum:

Jika anda menemui struktur JSON bersarang yang tidak diketahui, anda boleh menggunakan fungsi rekursif untuk menavigasi dan mendapatkan nilai yang dikehendaki:

<code class="python">def get_nested_value(data, path):
  if isinstance(data, dict):
    if path[0] in data:
      return get_nested_value(data[path[0]], path[1:])
    else:
      return None  # Raise an error if the key doesn't exist

  elif isinstance(data, list):
    if len(path) == 0:
      return data
    else:
      return get_nested_value(data[path[0]], path[1:])

  else:
    return data

value = get_nested_value(my_dict, ['value', 'queryInfo', 'creationTime'])</code>

Atas ialah kandungan terperinci Bagaimanakah anda mengekstrak nilai bersarang daripada struktur JSON yang kompleks?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn