>백엔드 개발 >파이썬 튜토리얼 >Python 2의 JSON에서 유니코드 대신 문자열 개체를 얻는 방법은 무엇입니까?

Python 2의 JSON에서 유니코드 대신 문자열 개체를 얻는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-03 11:02:02326검색

How to Get String Objects Instead of Unicode from JSON in Python 2?

JSON(Python 2)에서 유니코드 대신 문자열 개체 가져오기

Python 2의 ASCII 인코딩 텍스트 파일에서 JSON을 구문 분석할 때 기본 동작은 문자열을 나타내는 것입니다. 값을 유니코드 개체로 사용합니다. 이는 문자열 객체만 허용하는 라이브러리로 작업할 때 문제를 일으킬 수 있습니다.

다행히도 유니코드 객체 대신 문자열 객체를 얻는 방법에는 여러 가지가 있습니다.

PyYAML 사용

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.