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!