데이터 구동 의 Yaml 구현
데이터 와 파일 은 보통 세 가지 유형 이 있 습 니 다.
설정 파일 형: 예 를 들 어 ini, conf, properties 파일 은 간단 한 변수 와 설정 항목 을 저장 하기에 적합 하고 최대 2 층 을 지원 하 며 다 중 포 함 된 데이터 시트 매트릭스 형 을 저장 하 는 데 적합 하지 않 습 니 다. 예 를 들 어 csv, 엑셀 등 은 같은 데 이 터 를 대량으로 저장 하 는 데 적합 하고 다 중 포 함 된 구조 에 적합 하지 않 습 니 다. 예 를 들 어 XML, HTMl, JSON, YAML, TOML 등 입 니 다.단일 항목 이나 소수의 다 중 내장 데 이 터 를 저장 하기에 적합 하고 대량의 데 이 터 를 저장 하 는 데 적합 하지 않 습 니 다. YAML 은 JSON 형식 과 호 환 되 며 간결 하고 강력 하 며 유연 하 며 편리 한 구조 등급 데 이 터 를 구축 하고 Python 의 사전 으로 빠르게 전환 할 수 있 습 니 다.
2. YMAL 소개
YAML (YAML Ain 't Markup Language) 은 일종 의 반 표기 (XML) 언어 다.태그 가 아 닌 데이터 중심 을 강조 합 니 다.YAML 대소 문자 가 민감 하고 들 여 쓰기 로 등급 관 계 를 나 타 냅 니 다.YAML 에서 지원 하 는 대상 Object (Python 의 사전 에 대응), 배열 Array (Python 의 목록 에 대응) 및 상수 (문자열, 숫자 (int / float), true / false / null).JSON 형식 에 비해 YAML 은 따옴표, 쉼표, 대괄호, 중 괄호 등 을 면제 하고 주석, 유형 변환, 크로스 줄, 닻 점, 인용 및 삽입 등 을 지원 합 니 다.
3. 기본 서식
# : yaml
name: Cactus
age: 18
skills:
-
- Python
- 3
-
- Java
- 5
has_blog: true
gf: ~
다음 JSON 형식 에 해당 합 니 다.
{
"name": "Cactus",
"age": 18,
"skills": [
[
"Python",
3
],
[
"Java",
5
]
],
"has_blog": true,
"gf": null
}
4. 파 이 썬 이 YAML 파일 을 조작 합 니 다.
4.1 설치 Yml
pip install pyyaml
4.2 Yml 상용 방법 소개
JSON 파일 과 유사 하 며, Yml 도 load 와 dump 두 가지 방법 을 제공 합 니 다.
yaml. load () 또는 yaml. safeload (YAML 문자열 이나 파일 핸들): Yml - > 사전, 예 를 들 어 Yml 에 중국어 가 있 으 면 문자열. encode ('utf - 8') 를 사용 하거나 파일 을 열 때 encoding = 'utf - 8' Yml. dump (사전) 를 지정 해 야 합 니 다. 기본 값 은 flow 흐름 형식 입 니 다. 즉, 사전 {b ': {' c ': 3,' d ': 4}} 은 b 로 전 환 됩 니 다. {c: 3, d: 4} 형식 으로 default 를 사용 할 수 있 습 니 다.flow_style = False 스 트림 종료 모드 는 Yml. load () 가 원생 Python 대상 을 지원 하기 때문에 안전 하지 않 습 니 다. Yml. safe 를 사용 하 는 것 을 권장 합 니 다.load()
예제 1: Yml 문자열 - > 사전
import yaml
yaml_str = '''
name: Cactus
age: 18
skills:
-
- Python
- 3
-
- Java
- 5
has_blog: true
gf: ~
'''
print(yaml.safe_load(yaml_str))
인쇄 결과:
{'name': 'Cactus', 'age': 18, 'skills': [['Python', 3], ['Java', 5]], 'has_blog': True, 'gf': None}
중국어 가 있 으 면 Yml. load (Yml str. encoding (utf - 8) 를 사용 할 수 있 습 니 다.
예제 2: Yml 파일 - > 사전
import yaml
with open('demo.yaml', encoding='utf-8') as f: # demo.yaml yaml
print(yaml.safe_load(f))
인쇄 결 과 는 상례 와 같다.
예제 3: 사전 - > Yml 문자열 이나 파일
import yaml
dict_var = {
'name': 'Cactus', 'age': 18, 'skills': [['Python', 3], ['Java', 5]], 'has_blog': True, 'gf': None}
print(yaml.dump(dict_var,)) # , flow
with open('demo5.yaml', 'w', encoding='utf-8') as f:
yaml.dump(dict_var, f, default_flow_style=False) # , flow
인쇄 내용:
age: 18
gf: null
has_blog: true
name: Cactus
skills:
- [Python, 3]
- [Java, 5]
demo 5. yaml 파일 내용:
age: 18
gf: null
has_blog: true
name: Cactus
skills:
- - Python
- 3
- - Java
- 5
더 많은 작업 은 pyyaml 공식 문 서 를 참고 할 수 있 습 니 다:https://pyyaml.org/wiki/PyYAMLDocumentation
5. 데이터 구동 의 Yaml 실현
5.1 계속
특별 설명
이상 내용 참고: 임 연
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Rails Turbolinks를 페이지 단위로 비활성화하는 방법원래 Turobolinks란? Turbolinks는 링크를 생성하는 요소인 a 요소의 클릭을 후크로 하고, 이동한 페이지를 Ajax에서 가져옵니다. 그 후, 취득 페이지의 데이터가 천이 전의 페이지와 동일한 것이 있...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.