Python 2 で JSON から文字列オブジェクトを取得する
Python 2 で ASCII エンコードされたテキスト ファイルから JSON を解析すると、文字列値が自動的にキャストされますUnicode オブジェクトに変換します。これは、文字列オブジェクトを排他的に受け入れるライブラリとインターフェースするときに問題を引き起こす可能性があります。
Python 3 に更新するか変換関数を使用することが実行可能な解決策ですが、別のオプションは PyYAML を活用することです。 PyYAML は、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>
JSON との互換性を確保するには、PyYAML のload 関数をsafe_loadに置き換える必要があることに注意してください。さらに、ASCII エンコードされたエントリは文字列オブジェクトになりますが、Unicode エンコードされたエントリを使用しても Unicode オブジェクトが生成されます。
文字列オブジェクトを Unicode オブジェクトに変換する必要がある場合は、Mark Amery による変換関数を使用できます。
<code class="python">from mark_amery import unicode_to_str json_list = json.loads(json_list) str_list = unicode_to_str(unicode_list)</code>
以上がPython 2 で JSON から文字列オブジェクトを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。