Python을 사용하여 JSON 데이터를 처리하는 방법

青灯夜游
풀어 주다: 2018-11-14 14:37:50
원래의
3335명이 탐색했습니다.

Python을 사용하여 JSON 데이터를 처리하는 방법은 무엇입니까? 이 기사에서는 Python을 사용하여 JSON 데이터를 처리하는 기본 방법을 소개합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

Python을 사용하여 JSON 데이터를 처리하는 기본 방법을 소개하기 전에 먼저 JSON이란 무엇인가요?

JSON은 "JavaScript Object Notation"의 약자로 "JavaScript 언어 기호를 기반으로 한 데이터 형식"이라고 할 수 있습니다. 그러나 이 표기법은 JavaScript에만 기반을 두고 있으며 다양한 다른 언어에서도 사용될 수 있습니다.

JSON은 데이터를 저장하고 교환하는 방식으로, 구문을 통해 구현되고 많은 웹 애플리케이션에서 사용됩니다. JSON의 장점은 사람이 읽을 수 있는 형식이라는 점입니다. 이는 API를 사용할 때의 효율성 외에도 데이터 전송에 JSON을 사용하는 이유 중 하나일 수 있습니다.

JSON에서 데이터는 이름/값 쌍으로 표시됩니다. 객체는 중괄호 안에 저장되며, 각 이름 뒤에는 ':'(콜론)이 오고, 이름/값 쌍은 (쉼표)로 구분됩니다. 값은 (쉼표)로 구분됩니다.

JSON 형식 데이터의 예:

{
 "book1":{
"title": "Python Beginners",
 "year": 2005 ,
"page": 399
},
"book2":{
 "title": "Python Developers",
 "year": 2006 ,
"page": 650
 }
}
로그인 후 복사

Python에서 JSON 데이터를 처리하는 방법을 자세히 살펴보겠습니다.

Python을 사용하면 JSON 데이터를 쉽게 처리할 수 있습니다. 이를 구현하는 모듈이 json 모듈입니다. 이 모듈은 Python(내장) 설치에 포함되어야 하므로 PDF 및 Excel 파일과 같이 외부 모듈을 설치할 필요가 없습니다. 이 모듈을 사용하려면 가져오기만 하면 됩니다(처음에 작성).

import json
로그인 후 복사

그런데 JSON 라이브러리의 기능은 무엇인가요? 이 라이브러리는 주로 파일이나 문자열에서 JSON을 구문 분석합니다. 또한 JSON을 Python의 사전 또는 목록으로 구문 분석하고 그 반대도 마찬가지입니다. 즉, Python 사전 또는 목록을 JSON 문자열로 변환합니다.

JSON 읽기(JSON to Python)

JSON을 읽는다는 것은 JSON을 Python 값(객체)으로 변환하는 것을 의미합니다. 위에서 언급한 것처럼 json 라이브러리는 JSON을 Python의 사전이나 목록으로 구문 분석합니다. 이를 위해 아래와 같이 load() 함수(문자열에서 로드)를 사용합니다.

import json
jsonData = '{"name": "Frank", "age": 39}'
jsonToPython = json.loads(jsonData)
로그인 후 복사

출력을 보려면 jsonToPython을 인쇄하세요. 이 경우 다음 출력을 얻게 됩니다.

{'age': 39, 'name': 'Frank'}
로그인 후 복사

즉, 데이터는 Python 사전(JSON 객체 데이터 구조)으로 반환됩니다.

Python to JSON

이전 섹션에서는 JSON을 Python으로 소개했고, 이 섹션에서는 Python 값을 JSON으로 변환(인코딩)하는 방법을 보여드리겠습니다.

Python에 다음 사전이 있다고 가정합니다.

import json
pythonDictionary = {'name':'Bob', 'age':44, 'isEmployed':True}
dictionaryToJson = json.dumps(pythonDictionary)
로그인 후 복사

print DictionaryToJson을 실행하면 다음과 같은 JSON 데이터를 얻습니다.

{"age": 44, "isEmployed": true, "name": "Bob"}
로그인 후 복사

따라서 이 출력은 개체(사전)의 데이터 표현으로 처리됩니다. dump() 메소드는 이러한 유형의 작업의 핵심입니다.

현재 JSON은 모든 유형의 Python 개체를 저장할 수 없으며 다음 유형만 저장할 수 있습니다. 목록; 문자열; 따라서 JSON에 저장하려면 다른 유형을 변환해야 합니다.

다음 클래스가 있다고 가정합니다:

class Employee(object):
    def __init__(self, name):
        self.name = name
로그인 후 복사

아래와 같이 새 객체 abder를 생성한다고 가정합니다.

abder = Employee('Abder')
로그인 후 복사

이 객체를 JSON으로 변환하려면 어떻게 해야 할까요? json.dumps(abder)인가요? 이 경우 다음과 유사한 오류가 표시됩니다.

Traceback (most recent call last):
  File "test.py", line 8, in <module>
    abderJson = json.dumps(abder)
  File "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 243, in dumps
    return _default_encoder.encode(obj)
  File "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py", line 207, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py", line 270, in iterencode
    return _iterencode(o, 0)
  File "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py", line 184, in default
    raise TypeError(repr(o) + " is not JSON serializable")
TypeError: <__main__.Employee object at 0x10e74b750> is not JSON serializable
로그인 후 복사

그런데 해결 방법이 있나요? 다행히도 있습니다. 이 문제를 해결하려면 다음과 유사한 메서드를 정의할 수 있습니다.

def jsonDefault(object):
    return object.__dict__
로그인 후 복사

그런 다음 개체를 다음과 같이 JSON으로 인코딩합니다.

jsonAbder = json.dumps(abder, default=jsonDefault)
로그인 후 복사

print jsonAbder를 실행하면 다음과 같은 출력이 표시됩니다.

{"name": "Abder"}
로그인 후 복사

이제 Python 개체( abder)는 JSON으로 인코딩됩니다.

위 내용은 Python을 사용하여 JSON 데이터를 처리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿