Python 상용 프로필 ini,json,yaml 읽 기와 쓰기 총 결

본 고 는문장.를 참고 하여 학습 목적 에서 본 고 를 쓴다.
프로젝트 를 개발 할 때 자주 변경 해 야 하 는 데이터,예 를 들 어 데이터 뱅 크 의 연결 정보,요청 한 url,테스트 데이터 등 을 유지 하기 위해 이 데 이 터 를 프로필 에 기록 하고 데이터 와 코드 를 분리 해 야 합 니 다.프로필 의 매개 변 수 를 수정 하면 환경의 전환 이나 테스트 데이터 의 업 데 이 트 를 신속하게 완성 할 수 있 습 니 다.자주 사용 하 는 프로필 형식 은 ini,json,Yml 등 파 이 썬 이 이 몇 가지 형식의 파일 을 어떻게 읽 는 지 간단히 소개 합 니 다.
1.ini 형식
ini 는 Initialize 로 Windows 에서 자주 사용 하 는 프로필 형식 으로 구조 가 간단 하 며 주로 절(Section),키(key)와 값(value)으로 구성 된다.각 독립 된 부분 을 section 이 라 고 부 르 며,각 section 에 서 는 key(option)=value 로 이 루어 진 키 쌍 입 니 다.
在这里插入图片描述
Python 3 에 서 는 자체 적 으로 가지 고 있 는 configparser 라 이브 러 리(프로필 해상도 기)를 사용 하여 ini 와 같은 형식의 파일 을 해석 합 니 다.예 를 들 어 config,conf.
ini 는 사전 의 한 형식 만 있 고 모두 문자열 입 니 다.
1.1 ini 의 읽 기 삭제 작업

import configparser

#   ,        
config = configparser.ConfigParser()
#       
config.read('test.ini',encoding='utf-8')
#  sections,    
print(config.sections())
#[db,data]
#  sections    options
print(config.options('db'))
#['user', 'pwd', 'host', 'database', 'port']
#    section    options
print(config.get('db','user'))
# root
#  section      
print(config.items('data'))
#[('admin_user', 'tong'), ('admin_pwd', '123456')]
#    section
config.remove_section('data')
#    section  key
config.remove_option('db','host')
print(config.items('db'))
1.2 ini 쓰기 동작
쓰기 동작 이 적 을 수 있 습 니 다.

import configparser

config=configparser.ConfigParser()
config['url']={'url':'www.baidu.com'} #       

with open('example.ini','w') as configfile:
    config.write(configfile)
在这里插入图片描述
2.JSON 형식
JSON(JavaScript Object Notation)은 경량급 데이터 교환 형식 으로 언어 에 완전히 독립 된 텍스트 형식 을 사용 합 니 다.이러한 특성 으로 인해 json 은 이상 적 인 데이터 교환 언어 가 되 어 읽 기 쉽 고 쓰기 쉬 우 며 기계 적 으로 해석 하고 생 성 하기 쉽 습 니 다.
2.1 JSON 예제 형식

{
  "name":"smith",
  "age":30,
  "sex":" "
}
Python 에 서 는 내 장 된 모듈 json 을 사용 하여 json 데 이 터 를 조작 하고 json.load()와 json.dump 방법 으로 json 형식 파일 을 읽 고 씁 니 다.

#   json
import json
with open('test1.json') as f:
    a = json.load(f)
print(a)

#   json
import json
dic ={
    "name" : "xiaoming",
    "age" : 20,
    "phonenumber" : "15555555555"
}

with open("test2.json", "w") as outfile:
    json.dump(dic, outfile)
json 에 대한 더 많은 소 개 는링크
3.Yml 형식
Yml 는 Yet Another Markup Language(다른 태그 언어)라 고 부 릅 니 다.간결 한 비 태그 언어 로 데 이 터 를 중심 으로 빈 칸,들 여 쓰기,지점 조직 데 이 터 를 사용 하여 분석 원가 가 낮 고 매우 유행 하 는 프로필 언어 입 니 다.
3.1 Yml 의 문법 적 특징
  • 대소 문자 민감 성
  • 들 여 쓰기 로 등급 관 계 를 표시 합 니 다.들 여 쓰기 의 빈 칸 수 는 중요 하지 않 습 니 다.같은 등급 의 요소 왼쪽 을 정렬 하면 됩 니 다
  • 들 여 쓰기 시 Tab 키 를 사용 할 수 없고 빈 칸 만 사용 할 수 있 습 니 다.
  • 문자열 은 따옴표 로 표시 할 필요 가 없 지만,문자열 에 특수 문자 가 포함 되 어 있 으 면 따옴표 로 표시 해 야 합 니 다
  • 주석 표 지 는\#
  • 3.2 Yml 예시
    
    case1:
     info:
      title: "    "
      url: http://192.168.1.1/user/login
      method: "POST"
     json:
      username: "admin"
      password: "123456"
     expected:
      status_code: 
      - 200
      - 300
      content: "user_id"
    읽 기 후 효과:
    在这里插入图片描述
    Yml 지원 하 는 데이터 구 조 는 세 가지 가 있 습 니 다.
  • 대상:키 쌍 의 집합,맵(mapping)/해시(hashes)/사전(dictionary)
  • 배열:한 조 가 순서대로 배열 한 값 을 서열(sequence)/목록(list)
  • 순 량(scalars):단일,재 분할 할 수 없 는 값 입 니 다.문자열,불 값,정수,부동 소수점,Null,시간,날짜
  • Python 에서 pyyaml 로 Yml 형식 데 이 터 를 처리 합 니 다.
    사용 하기 전에 설치 해 야 합 니 다:
    
    pip install pyyaml
    3.3 Yml 파일 읽 기
    python 으로 Yml 파일 을 읽 고 open 방법 으로 파일 데 이 터 를 읽 은 다음 load 방법 으로 사전 으로 전환 합 니 다.
    
    import yaml
    with open("testyaml.yaml", encoding='utf-8') as file:
        data = yaml.safe_load(file)
        print(data)
        print(data['case1']['json'])
        print(data['case1']['json']['username'])
    3.4 Yml 파일 의 기록
    
    import yaml
    #      
    
    content = {
        'id': 1,
        'text': 'programming languages',
        'members': ['java', 'python', 'python', 'c', 'go', 'shell'],
        'next': {'a':1,'b':2}
    }
    
    with open('test3.yaml', 'w', encoding='utf-8') as file:
        yaml.dump(content, file, default_flow_style=False, encoding='utf-8', allow_unicode=True)
    이상 세 가지 데이터 형식 이 있 습 니 다.파일 쓰기 효 과 는 다음 과 같 습 니 다.
    在这里插入图片描述
    물론 수 동 으로 써 도 문제없다.
    파 이 썬 에서 자주 사용 하 는 프로필 ini,json,yaml 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 읽 기와 쓰기 ini,json,yaml 프로필 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 지원 바 랍 니 다!

    좋은 웹페이지 즐겨찾기