Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 기타 연주
- C#
- paramiko
- 채보
- windows forms
- SSH
- VS Code
- mysql
- pandas
- pip
- 핑거스타일
- 오류
- pytorch
- Python
- ubuntu
- Numpy
- LIST
- JSON
- 명령어
- Linux
- OpenCV
- 프로그래머스
- YOLO
- C
- Visual Studio
- error
- C++
- Docker
- Selenium
- label
Archives
- Today
- Total
기계는 거짓말하지 않는다
Python JSON 문자열이 포함된 문자열, output string(stdout)을 JSON 객체로 파싱(parsing) 본문
Python
Python JSON 문자열이 포함된 문자열, output string(stdout)을 JSON 객체로 파싱(parsing)
KillinTime 2024. 1. 1. 19:05Python에서 stdout이 JSON 형식의 문자열이거나 문자열 내부에
JSON 문자열이 포함되어 있을 경우 파싱 하는 함수이다.
여러 케이스에 대하여 검증되지는 않았다.
import json
def extract_json_strings(input_string):
json_strings = []
start_brace_index = -1
end_brace_index = -1
open_brace_count = 0
close_brace_count = 0
for i, char_ in enumerate(input_string):
if char_ == '{':
open_brace_count += 1
if open_brace_count == 1:
start_brace_index = i
if char_ == '}' and open_brace_count >= 1:
close_brace_count += 1
end_brace_index = i
if open_brace_count == close_brace_count:
json_strings.append(input_string[start_brace_index:end_brace_index + 1])
start_brace_index = -1
end_brace_index = -1
open_brace_count = 0
close_brace_count = 0
if open_brace_count >= 1 and close_brace_count != 0 and close_brace_count < open_brace_count:
json_strings.append(input_string[start_brace_index:end_brace_index + 1])
# 추출된 문자열 파싱, JSON 객체 변환
json_objects = [json.loads(json_str) for json_str in json_strings]
return json_objects
contain_json_string = """
MESSAGE1
{
"name": "temp1",
"id": 2,
"message": "temp message",
"temp_dict": {
"a": 1,
"b": 2
}
}
MESSAGE2
"""
result = extract_json_strings(contain_json_string)
print(result)
'Python' 카테고리의 다른 글
Python 데몬(daemon) 쓰레드 설정(메인 쓰레드 종료 시 함께 종료) (0) | 2024.01.15 |
---|---|
Python pytube youtube 영상 다운로드 (0) | 2024.01.03 |
Python 여러 줄 문자열 각 라인 최소 indent 만큼 제거하고 출력 (0) | 2024.01.01 |
Python 콜백 함수(Callback Function) 람다(Lambda) 매개변수 할당 (1) | 2023.12.29 |
Python 변수명 언더스코어(_) (0) | 2023.12.25 |
Comments