일상적인 프로그래밍 작업에서 JSON 데이터를 처리하고 정보를 추출해야 하는 경우가 있는데, 정규식의 강력한 기능을 사용하면 이 작업을 빠르고 효율적으로 완료하는 데 도움이 될 수 있습니다. 이번 글에서는 JSON 처리를 위해 Python 정규식을 사용하는 방법을 소개하겠습니다.
JSON은 네트워크 전송 및 데이터 저장에 일반적으로 사용되는 경량 데이터 교환 형식입니다. Python에서는 json 라이브러리를 사용하여 JSON 데이터를 구문 분석할 수 있지만, 경우에 따라 JSON 데이터의 특정 처리 및 추출을 수행해야 합니다. 이때 정규 표현식이 그 역할을 합니다.
먼저 JSON 데이터의 기본 구조를 살펴보겠습니다. JSON 데이터는 일반적으로 키-값 쌍으로 구성됩니다. 키와 값은 콜론 ":"으로 구분되고, 각 키-값 쌍은 쉼표 ","로 구분되며, 가장 바깥쪽 레이어는 일반적으로 중괄호 "{}"로 묶입니다. . 예:
{ "name": "John", "age": 30, "city": "New York" }
이제 Python 정규식을 사용하여 이 JSON 데이터를 추출하는 방법을 살펴보겠습니다. "이름" 및 "나이" 필드를 추출해야 한다고 가정하면 다음 정규식을 사용할 수 있습니다.
"name":s*"([^"]+)",s*"age":s*(d+)
이 정규식을 분석하십시오.
을 제외한 모든 문자와 일치합니다. 위의 정규 표현식을 사용하면 "name" 필드에 해당하는 값과 "age" 필드에 해당하는 값을 추출할 수 있습니다. Python 코드를 사용하여 구현합니다.
import re s = '{"name": "John", "age": 30, "city": "New York"}' pattern = re.compile(r'"name":s*"([^"]+)",s*"age":s*(d+)') match = pattern.search(s) if match: name = match.group(1) age = match.group(2) print(name, age)
출력:
John 30
다음으로 JSON 데이터 추출에 Python 정규식을 사용하는 방법에 대한 더 많은 응용 시나리오를 살펴보겠습니다.
때로는 특정 필드의 값만 추출해야 하는 경우가 있습니다. 값에는 다음 정규식을 사용할 수 있습니다.
"field_name":s*"([^"]+)"
예를 들어 위 JSON 데이터에서 "city" 필드에 해당하는 값을 추출해야 하는 경우 다음과 같은 정규식을 사용할 수 있습니다.
"city":s*"([^"]+)"
Python 코드 구현:
import re s = '{"name": "John", "age": 30, "city": "New York"}' pattern = re.compile(r'"city":s*"([^"]+)",') match = pattern.search(s) if match: city = match.group(1) print(city)
출력:
New York
JSON 데이터에서 때로는 배열 유형 요소의 값을 추출해야 할 경우 다음 정규식을 사용할 수 있습니다.
"array_field":s*[s*([sS]*?)s*]
예를 들어 다음이 필요합니다. 다음 JSON 데이터에서 "pets" 필드를 추출하려면 해당 값의 모든 요소:
{ "name": "John", "age": 30, "pets": [ { "name": "dog", "age": 3 }, { "name": "cat", "age": 2 } ] }
다음 정규식을 사용할 수 있습니다.
"pets":s*[s*([sS]*?)s*]
Python 코드 구현:
import re s = '{"name": "John", "age": 30, "pets": [{"name": "dog", "age": 3},{"name": "cat", "age": 2}]}' pattern = re.compile(r'"pets":s*[s*([sS]*?)s*]') match = pattern.search(s) if match: pets = match.group(1) print(pets)
출력:
{"name": "dog", "age": 3},{"name": "cat", "age": 2}
때때로 여러 수준을 추출해야 하는 경우 중첩된 요소의 값에 대해 다음 정규 표현식을 사용할 수 있습니다.
"object1":s*{s*[sS]*?"object2":s*{s*[sS]*?"field_name":s*"([^"]+)"
예를 들어 두 번째 요소의 "age" 필드에 해당하는 값을 추출해야 합니다. 다음 JSON 데이터의 "pets" 필드에 해당하는 값의 요소:
{ "name": "John", "age": 30, "pets": [ { "name": "dog", "age": 3 }, { "name": "cat", "age": 2 } ] }
다음과 같이 정규식을 사용할 수 있습니다.
"pets":s*[s*[sS]*?"age":s*(d+)[sS]*?}
Python 코드 구현:
import re s = '{"name": "John", "age": 30, "pets": [{"name": "dog", "age": 3},{"name": "cat", "age": 2}]}' pattern = re.compile(r'"pets":s*[s*[sS]*?"age":s*(d+)[sS]*?}') match = pattern.search(s) if match: age = match.group(1) print(age)
출력:
2
요약:
정규식 사용 JSON 처리를 사용하면 JSON 데이터를 보다 유연하게 추출하고 처리할 수 있습니다. 이는 JSON 데이터의 필터링, 필터링, 변환 등이 필요한 특정 애플리케이션 시나리오에 매우 중요합니다. 그러나 JSON 데이터를 처리할 때 정규 표현식이 필요하다는 점에 유의해야 합니다. 좀 더 복잡한 상황에는 적합하지 않을 수 있으니, 실제 상황에 따라 유연하게 선택하셔야 합니다
위 내용은 JSON 처리를 위해 Python 정규식을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!