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
Lepaskan: 2024-11-02 15:53:29
asal
745 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

2. Contoh Kod:

Untuk mendapatkan nilai 'creationTime', gunakan kod berikut:

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

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan