ko
English
Español
中國人
Tiếng Việt
Deutsch
Українська
Português
Français
भारतीय
Türkçe
Italiano
Gaeilge
اردو
Indonesia
Polski JSON은 JavaScript 객체 표기법의 약자입니다. 가벼울 뿐만 아니라 사람이 읽고 쓰기에도 쉽습니다. 마찬가지로 기계도 구문 분석과 생성이 간단합니다. 파이썬 개발자는 API, 구성 파일 또는 기타 저장된 정보 소스의 콘텐츠를 다룰 때 구문 분석이 매우 중요합니다. 이 문서에서는 콘텐츠 저장을 위해 json.dump python을 사용하는 방법을 포함하여 Python 모듈을 사용하여 JSON을 구문 분석하는 기본 사항을 안내합니다.
JSON은 키-값 쌍으로 세부 정보를 구조화합니다. 다음은 객체의 기본 예시입니다:
{
"name": "Alice",
"age": 30,
"is_student": false,
"courses": ["Math", "Science"]
}
이 파이썬 json 구문 분석 예제에는 문자열, 숫자, 부울, 배열이 공통적으로 포함되어 있습니다. 이 구조에 익숙해지면 Python에서 훨씬 쉽게 작업할 수 있습니다.
파이썬에 내장된 모듈을 사용하여 json 문자열을 쉽게 파싱할 수 있습니다. 이 모듈에는 문자열에서 읽기 위한 json.loads(), 파일에서 읽기 위한 json.load() 등의 메서드가 포함되어 있습니다. 반대로 json.dumps() 및 json.dump Python은 각각 문자열과 파일에 정보를 쓰는 데 사용됩니다.
다음에 설명할 JSON 데이터를 읽는 방법에 대해 살펴보겠습니다.
파이썬에서 json을 읽으려면 json.loads()를 사용하여 문자열을 구문 분석하고 파이썬 객체로 변환합니다:
import json
json_string = '{"name": "Alice", "age": 30, "is_student": false, "courses": ["Math", "Science"]}'
data = json.loads(json_string)
print(data)
출력:
파일에서 정보를 추출하려면 다음 메서드인 json.load()를 사용하여 파이썬에서 json 파일을 엽니다:
import json
with open('data.json', 'r') as file:
data = json.load(file)
print(data)
출력:
글을 쓰기 전에 기존 정보를 읽거나 로드해야 하는 경우가 많은데, 이때 파이썬 load json 파일 메서드가 유용합니다. 정보가 제대로 로드되면 다양한 형식으로 조작하고 다시 쓸 수 있습니다.
문자열에 정보를 쓰려면 json.dumps Python 메서드를 사용합니다:
import json
data = {
"name": "Alice",
"age": 30,
"is_student": False,
"courses": ["Math", "Science"]
}
json_string = json.dumps(data)
print(json_string)
출력:
이 파일의 세부 정보를 작성하려면 json.dump Python 메서드를 사용합니다:
import json
data = {
"name": "Alice",
"age": 30,
"is_student": False,
"courses": ["Math", "Science"]
}
with open('data.json', 'w') as file:
json.dump(data, file)
중첩된 객체는 보다 복잡한 정보 구조로 작업할 때 흔히 발생하며, 이러한 중첩된 구조를 쉽게 처리할 수 있습니다.
import json
nested_json_string = '''
{
"name": "Alice",
"age": 30,
"is_student": false,
"courses": ["Math", "Science"],
"address": {
"street": "123 Main St",
"city": "Wonderland"
}
}
'''
data = json.loads(nested_json_string)
print(data['address']['city'])
출력:
언어가 모든 사용자 정의 객체를 자동으로 JSON으로 변환할 수는 없습니다. 이러한 경우 사용자 정의 인코더를 만들어야 합니다.
import json
class Student:
def __init__(self, name, age, is_student):
self.name = name
self.age = age
self.is_student = is_student
class StudentEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, Student):
return obj.__dict__
return super().default(obj)
student = Student("Alice", 30, False)
json_string = json.dumps(student, cls=StudentEncoder)
print(json_string)
출력:
사용자 정의 객체로 역직렬화하려면 이를 처리하는 방법을 알고 있는 사용자 정의 디코더를 구현해야 합니다.
import json
class Student:
def __init__(self, name, age, is_student):
self.name = name
self.age = age
self.is_student = is_student
def student_decoder(dct):
return Student(dct['name'], dct['age'], dct['is_student'])
json_string = '{"name": "Alice", "age": 30, "is_student": false}'
student = json.loads(json_string, object_hook=student_decoder)
print(student.name)
출력:
데이터 세부 정보로 작업할 때, 특히 구조화된 콘텐츠를 구문 분석, 생성 또는 액세스할 때 몇 가지 일반적인 오류가 발생할 수 있습니다. 신뢰할 수 있는 Python json 파서를 사용하면 이러한 문제를 보다 효율적으로 식별하고 해결하는 데 도움이 됩니다. 다음은 가장 일반적인 몇 가지 오류입니다:
json 파일을 구문 분석할 때 흔히 발생하는 오류는 잘못된 형식입니다. 키와 문자열 값을 큰따옴표로 묶고 대괄호와 중괄호를 적절히 중첩해야 합니다.
import json
invalid_json_string = "{'name': 'Alice', 'age': 30, 'is_student': False}"
try:
data = json.loads(invalid_json_string)
except json.JSONDecodeError as e:
print(f"Invalid JSON format: {e}")
출력:
콘텐츠에 예상한 모든 키가 포함되지 않는 경우가 있습니다. get() 메서드를 사용하면 오류를 발생시키는 대신 기본값을 반환하여 누락된 키를 안전하게 처리할 수 있습니다.
import json
json_string = '{"name": "Alice", "age": 30}'
data = json.loads(json_string)
is_student = data.get('is_student', False)
print(is_student)import json
json_string = '{"name": "Alice", "age": 30}'
data = json.loads(json_string)
is_student = data.get('is_student', False)
print(is_student)
pdb 모듈을 사용하여 중단점을 설정하고 구문 분석 코드를 디버그하세요.
import json
import pdb
json_string = '{"name": "Alice", "age": 30, "is_student": false}'
pdb.set_trace()
data = json.loads(json_string)
print(data)
웹 스크래핑은 일반적으로 획득한 정보를 반환하는 서비스에서 콘텐츠를 검색하는 작업을 포함합니다. 다음은 엔드포인트 https://httpbin.org/anything 와 함께 요청 라이브러리를 활용하는 예제입니다.
시작하기 전에 요청 패키지를 설치했는지 확인하세요:
pip install requests
구조화된 콘텐츠로 작업할 때 요청 라이브러리를 사용하면 작업을 더 쉽게 수행할 수 있습니다. requests.get(url)을 통해 GET 요청과 URL을 발행하기만 하면 됩니다. 그런 다음 response.json()으로 응답을 파싱할 수 있습니다. 여기에서 헤더, 사용자 에이전트, 원본 또는 요청 URL과 같은 특정 정보에 간단히 액세스하여 필요에 따라 인쇄할 수 있습니다.
이 코드에는 강력한 오류 처리 기능이 포함되어 있어 디코딩 오류가 발생하면 json.JSONDecodeError를 캡처하고 특정 키가 없을 경우 KeyError를 캡처하여 '데이터 없음' 충돌로부터 프로그램을 안전하게 보호합니다. 따라서 이러한 코드 견고성 덕분에 실제 웹 스크래핑 작업을 완벽하게 처리할 수 있습니다.
import requests
import json
url = 'https://httpbin.org/anything'
response = requests.get(url)
try:
data = response.json()
# JSON 응답에서 특정 데이터 추출하기
headers = data['headers']
user_agent = headers.get('User-Agent', 'N/A')
origin = data.get('origin', 'N/A')
url = data.get('url', 'N/A')
print(f"User Agent: {user_agent}")
print(f"Origin: {origin}")
print(f"URL: {url}")
except json.JSONDecodeError:
print("Error decoding JSON response")
except KeyError as e:
print(f"Key error: {e} not found in the JSON response")
모든 개발자는 파이썬에서 json 파일을 파싱하는 방법을 알아야 합니다. 이 설명서에서 강조하는 모듈과 가장 좋은 방법을 사용하면 충분히 빠르게 읽고, 쓰고, 디버깅할 수 있습니다. 즉, 코드를 정기적으로 테스트하고 올바른 도구와 최신 기능을 사용하여 더 나은 성능을 발휘할 수 있습니다. 이 가이드는 이러한 작업을 효율적으로 마스터하는 데 도움이 되도록 Python에서 json 데이터를 구문 분석하는 데 중점을 두고 있습니다.
웹 스크래핑을 할 때 웹 API의 콘텐츠는 종종 이러한 형식으로 제공되기 때문에 구문 분석은 필수적입니다. 이를 처리하고 조작하는 데 능숙하면 다양한 소스에서 가치 있는 정보를 효율적으로 추출할 수 있습니다.
구문 분석은 웹 API, 구성 파일 또는 외부 소스로 작업하는 모든 개발자에게 핵심적인 기술입니다. 문자열, 파일에서 읽기, 구조화된 출력 작성, 중첩 및 사용자 정의 객체 처리 등 정보 처리는 Python에 내장된 모듈을 통해 간소화됩니다. 개발자는 json.load(), json.loads(), json.dump(), json.dumps() Python 메서드를 잠금 해제하고 일반적인 문제를 처리하는 방법을 배우고, 맞춤형 인코더 또는 디코더를 구현하고, 견고하고 신뢰할 수 있는 정보 상호 작용을 위한 맞춤형 애플리케이션을 만들 수 있습니다. 이 형식이 정보 교환을 위한 웹 표준이라는 점을 감안할 때 이러한 기술은 스크래핑, 콘텐츠 조작, API를 통한 여러 서비스 통합에 유용합니다. 간단한 파이썬 코드를 사용하여 json 파일을 읽으면 모든 프로젝트에서 파이썬으로 json 파일을 구문 분석할 수 있으며, json.dump 파이썬을 사용하면 자료를 효율적으로 다시 저장할 수 있습니다.
댓글: 0