Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengambil Objek String dari JSON dalam Python 2?

Bagaimana untuk Mengambil Objek String dari JSON dalam Python 2?

Barbara Streisand
Barbara Streisandasal
2024-11-02 23:49:30237semak imbas

How to Retrieve String Objects from JSON in Python 2?

Mendapatkan semula Objek Rentetan daripada JSON dalam Python 2

Apabila menghuraikan JSON dalam Python 2 daripada fail teks berkod ASCII, nilai rentetan dihantar secara automatik kepada objek Unicode. Ini boleh menimbulkan isu apabila antara muka dengan perpustakaan yang menerima objek rentetan secara eksklusif.

Semasa mengemas kini kepada Python 3 atau menggunakan fungsi penukaran adalah penyelesaian yang berdaya maju, pilihan lain ialah memanfaatkan PyYAML. PyYAML menawarkan pendekatan yang lebih langsung dengan mengembalikan objek rentetan sebagai kunci dan nilai untuk fail JSON:

<code class="python">import yaml

list_org = ['a', 'b']
list_dump = json.dumps(list_org)
json_result = json.loads(list_dump)
yaml_result = yaml.safe_load(list_dump)

print(json_result, type(json_result))  # [u'a', u'b'], <type 'list'>
print(yaml_result, type(yaml_result))  # ['a', 'b'], <type 'list'></code>

Perhatikan bahawa fungsi beban PyYAML mesti digantikan dengan safe_load untuk memastikan keserasian dengan JSON. Selain itu, sementara entri yang dikodkan ASCII menghasilkan objek rentetan, menggunakan entri yang dikodkan Unikod masih akan menghasilkan objek Unicode.

Jika penukaran objek rentetan kepada objek Unicode diperlukan, fungsi penukaran oleh Mark Amery boleh digunakan:

<code class="python">from mark_amery import unicode_to_str

json_list = json.loads(json_list)
str_list = unicode_to_str(unicode_list)</code>

Atas ialah kandungan terperinci Bagaimana untuk Mengambil Objek String dari JSON dalam Python 2?. 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