Python 3 JSON 파일 읽 기

4764 단어
JSON 소개
JSON (JavaScript Object Notation) 은 JavaScript 대상 표현 법 으로 경량급, 통용 되 는 텍스트 데이터 형식 입 니 다.JSON 문법 지원 대상 (Object), 배열 (Array), 문자열, 숫자 (int / float) 및 true / false 와 null.JSON 은 엄격 한 형식 을 가지 고 있 습 니 다. 주요 형식 은 다음 과 같 습 니 다.
  • 작은 따옴표 만 사용 할 수 있 고 작은 따옴표
  • 를 사용 할 수 없다.
  • 요소 사 이 를 쉼표 로 구분 하고 마지막 요 소 는 쉼표 가 있 으 면 안 됩 니 다
  • 주석 지원 하지 않 음
  • 중국어 등 특수 문자 전송 시 ASCII 코드 (\ uXXX 형식)
  • 로 전환 되 는 지 확인 해 야 합 니 다.
  • 다 중 내장 Object 또는 Array 지원
  • 예제 형식, 파일 demo. json:
    {
        "name": "Cactus",
        "age": 18,
        "skills": ["Python", "Java", "Go", "NodeJS"],
        "has_blog": true,
        "gf": null
    }

    JSON 과 Python 데이터 형식의 대응 관계
    JSON 과 Python 의 사전 등 유형 을 일일이 대응 합 니 다.
    JSON
    Python
    Object
    자전.
    Array
    리스트
    문자열
    문자열
    숫자.
    숫자 (int / float)
    true/false
    True/False
    null
    Null
    메모: Python 에서 JSON 은 일반적으로 JSON 문법 형식 에 맞 는 문자열 을 말 합 니 다. 사실은 하나의 문자열, 한 줄 또는 여러 줄 입 니 다.
    JSON 문자열 과 Python 사전 의 상호 변환
    왜 서로 변환 해 야 합 니까? JSON 은 문자열 로 전송 을 저장 하기 쉽 고 추출 값 이 불편 합 니 다.사전 은 메모리 의 데이터 구조 로 수치 추출 이 편리 하고 전송 과 저장 이 불편 하 다.
    Python 이 가지 고 있 는 json 패 키 지 를 사용 하면 사전 과 JSON 문자열 의 상호 변환 을 완성 할 수 있 습 니 다.
  • json. dumps (사전): 사전 을 JSON 문자열 로 변환
  • json. loads (JSON 문자열): JSON 문자열 을 사전 으로 변환 합 니 다. 문자열 이 합 법 적 인 JSON 형식 이 아니라면 JSONDEcodeError
  • 를 보고 합 니 다.
    예제 1, 사전 JSON 문자열 변환
    import json
    
    dict_var = {
        'name': 'Cactus', 
        'age': 18, 
        'skills': ['Python', 'Java', 'Go', 'NodeJS'], 
        'has_blog': True, 
        'gf': None
    }
    
    print(json.dumps(dict_var))
    print(json.dumps(dict_var, indent=2,sort_keys=True, ensure_ascii=False))

    json. dumps () 지원 인자, indent 는 여러 줄 의 빈 칸 수, sortkeys 버튼 정렬 여부, ensureascii = False 는 ascii 를 확보 하지 않 고 중국어 등 특수 문 자 를 \ uXXX 로 바 꾸 지 않 는 등 결 과 를 표시 합 니 다.
    {"name": "Cactus", "age": 18, "skills": ["Python", "Java", "Go", "NodeJS"], "has_blog": true, "gf": null}
    {
      "age": 18,
      "gf": null,
      "has_blog": true,
      "name": "Cactus",
      "skills": [
        "Python",
        "Java",
        "Go",
        "NodeJS"
      ]
    }
    

    예제 2, JSON 문자열 - > 사전
    import json
    
    json_str = '''{
        "name": "Cactus",
        "age": 18,
        "skills": ["Python", "Java", "Go", "NodeJS"],
        "has_blog": true,
        "gf": null
    }'''
    
    print(json.loads(json_str))

    결과 보이 기:
    {'name': 'Cactus', 'age': 18, 'skills': ['Python', 'Java', 'Go', 'NodeJS'], 'has_blog': True, 'gf': None}

    JSON 파일 과 사전 의 상호 변환
    또한 사전 을 JSON 파일 로 저장 하거나 JSON 파일 에서 사전 으로 변환 할 수도 있 습 니 다.
  • json. dump (사전, f): 사전 을 JSON 파일 (문형)
  • 로 변환 합 니 다.
  • json. loads (f): 열 린 JSON 파일 핸들 을 사전 으로 변환
  • 예제 3: 사전 - > JSON 파일
    import json
    
    dict_var = {
        'name': 'Cactus', 
        'age': 18, 
        'skills': ['Python', 'Java', 'Go', 'NodeJS'], 
        'has_blog': True, 
        'gf': None
    }
    
    with open("demo2.json", "w", encoding='utf-8') as f:
        # json.dump(dict_var, f)  #     
        json.dump(dict_var, f,indent=2,sort_keys=True, ensure_ascii=False)  #     

    파일 demo 2. json 결과:
    {
      "age": 18,
      "gf": null,
      "has_blog": true,
      "name": "Cactus",
      "skills": [
        "Python",
        "Java",
        "Go",
        "NodeJS"
      ]
    }

    예제 4: JSON 파일 - > 사전
    import json
    
    with open("demo2.json", encoding="utf-8") as f:
        data = json.load(f)
    
    pritn(data)

    결과 보이 기:
    {'age': 18, 'gf': None, 'has_blog': True, 'name': 'Cactus', 'skills': ['Python', 'Java', 'Go', 'NodeJS']}

    메모: 사전 이 JSON 으로 바 뀌 었 을 때 포 함 된 사전, 목록, 문자열, 숫자, True / False / none 등 만 지원 합 니 다. 날짜 대상 및 Python 의 다른 대상 은 서로 변환 해 야 합 니 다. 참고 할 수 있 습 니 다.https://python3-cookbook.readthedocs.io/zh_CN/latest/c06/p02_read-write_json_data.html
    복잡 한 끼 워 넣 기 JSON 형식 을 해석 하려 면 JSONPath 를 사용 하 십시오.
    다음으로 전송:https://www.cnblogs.com/superhin/p/11502830.html

    좋은 웹페이지 즐겨찾기