Python 2의 ASCII 인코딩 텍스트 파일에서 JSON을 구문 분석할 때 기본 동작은 문자열을 나타내는 것입니다. 값을 유니코드 개체로 사용합니다. 이는 문자열 객체만 허용하는 라이브러리로 작업할 때 문제를 일으킬 수 있습니다.
다행히도 유니코드 객체 대신 문자열 객체를 얻는 방법에는 여러 가지가 있습니다.
PyYAML은 JSON의 상위 집합인 YAML을 구문 분석하기 위한 Python 라이브러리입니다. JSON 구조를 유지하면서 문자열 개체를 가져오는 편리한 방법을 제공합니다.
<code class="python">import yaml json_string = '["a", "b"]' data = yaml.safe_load(json_string) # Returns a list of strings</code>
참고: 이 방법은 ASCII로 인코딩된 데이터에만 작동합니다.
데이터가 유니코드로 인코딩된 경우 변환 함수를 사용하여 유니코드 문자열을 일반 문자열로 변환할 수 있습니다:
<code class="python">def unicode_to_string(obj): if isinstance(obj, basestring): return obj.encode('utf-8') elif isinstance(obj, dict): return dict((unicode_to_string(k), unicode_to_string(v)) for k, v in obj.iteritems()) elif isinstance(obj, list): return [unicode_to_string(v) for v in obj] else: return obj # Usage: json_string = '["\u00e1", "\u00e9"]' data = json.loads(json_string) converted_data = unicode_to_string(data) # Converts Unicode strings to strings</code>
직렬화 중에 개체 후크를 사용하여 유니코드 문자열을 문자열로 변환할 수도 있습니다.
<code class="python">import json def object_hook(obj): if isinstance(obj, unicode): return obj.encode('utf-8') return obj # Usage: json_string = '["a", "b"]' data = json.loads(json_string, object_hook=object_hook) # Converts Unicode strings to strings during deserialization</code>
위 내용은 Python 2의 JSON에서 유니코드 대신 문자열 개체를 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!