>  기사  >  백엔드 개발  >  Python에서 Json 모듈 및 Pickle 모듈 사용

Python에서 Json 모듈 및 Pickle 모듈 사용

angryTom
angryTom앞으로
2019-11-27 15:21:053039검색

Python에서 Json 모듈 및 Pickle 모듈 사용

데이터 직렬화 및 역직렬화는 일반적인 데이터 작업입니다. Python은 개발자가 데이터 직렬화 작업을 쉽게 구현할 수 있도록 json 모듈과 pickle 모듈이라는 두 가지 모듈을 제공합니다. 이 두 모듈의 주요 차이점은 다음과 같습니다.

json은 텍스트 직렬화 형식인 반면, pickle은 이진 직렬화 형식입니다.

json은 직관적으로 읽을 수 있지만

json은 상호 운용 가능하며 외부에서 널리 사용됩니다. Python 시스템, Pickle은 Python 전용입니다.

기본적으로 json은 Python의 내장 유형 중 일부만 나타낼 수 있으며 사용자 정의 클래스는 나타낼 수 없습니다.

그러나 pickle은 많은 수의 Python 데이터 유형을 나타낼 수 있습니다.

추천 학습: Python 동영상 튜토리얼

Json 모듈

Json은 전송되는 데이터의 양이 적고 데이터 형식을 구문 분석하기 쉬운 특성으로 인해 경량 데이터 교환 형식입니다. , 데이터를 데이터 형식으로 전송하기 위해 다양한 시스템 간의 대화식 작업에 널리 사용됩니다. 여기에는 다음과 같이 일반적으로 사용되는 여러 함수가 포함되어 있습니다.

dumps() 함수

dumps() 함수는 Python 개체를 Json 문자열로 인코딩할 수 있습니다. 예:

#
字典转成json字符串 加上ensure_ascii = False以后, 可以识别中文, indent = 4 是间隔4个空格显示

import json
d = {
    '小明': {
        'sex': '男',
        'addr': '上海',
        'age': 26
    },
    '小红': {
        'sex': '女',
        'addr': '上海',
        'age': 24
    },
}
print(json.dumps(d, ensure_ascii = False, indent = 4))

# 执行结果: {
    "小明": {
        "sex": "男",
        "addr": "上海",
        "age": 26
    },
    "小红": {
        "sex": "女",
        "addr": "上海",
        "age": 24
    }
}

dump() function

dump() 함수는 Python 객체를 json 문자열로 인코딩하고 별도의 파일을 작성할 필요 없이 자동으로 파일에 쓸 수 있습니다. 예:

#
字典转成json字符串, 不需要写文件, 自动转成的json字符串写入到‘ users.json’ 的文件中
import json
d = {
    '小明': {
        'sex': '男',
        'addr': '上海',
        'age': 26
    },
    '小红': {
        'sex': '女',
        'addr': '上海',
        'age': 24
    },
}#
打开一个名字为‘ users.json’ 的空文件
fw = open('users.json', 'w', encoding = 'utf-8')

json.dump(d, fw, ensure_ascii = False, indent = 4)

loads() 함수

loads() 함수는 json 문자열을 Python 데이터 유형으로 변환할 수 있습니다. 예:

#
这是users.json文件中的内容 {
        "小明": {
            "sex": "男",
            "addr": "上海",
            "age": 26
        },
        "小红": {
            "sex": "女",
            "addr": "上海",
            "age": 24
        }
    }

#!/usr/bin / python3# 把json串变成python的数据类型
import json# 打开‘ users.json’ 的json文件
f = open('users.json', 'r', encoding = 'utf-8')# 读文件
res = f.read()
print(json.loads(res))

# 执行结果: {
    '小明': {
        'sex': '男',
        'addr': '上海',
        'age': 26
    },
    '小红': {
        'sex': '女',
        'addr': '上海',
        'age': 24
    }
}

load() function

load()에는 load()와 유사한 함수가 있습니다. load() 함수는 json 문자열을 Python 데이터 유형으로 변환할 수 있다는 점입니다. 전자는 파일 객체입니다. 이 파일은 별도로 읽어야 합니다. 예를 들면 다음과 같습니다.

#
把json串变成python的数据类型: 字典, 传一个文件对象, 不需要再单独读文件
import json# 打开文件
f = open('users.json', 'r', encoding = 'utf-8')
print(json.load(f))

# 执行结果: {
    '小明': {
        'sex': '男',
        'addr': '上海',
        'age': 26
    },
    '小红': {
        'sex': '女',
        'addr': '上海',
        'age': 24
    }
}

Pickle 모듈

Pickle 모듈에는 Json 모듈과 유사한 기능이 있습니다. 또한 dump(), dump(), load() 및 load()라는 네 가지 기능이 포함되어 있습니다.

덤프와 덤프의 차이점은 전자는 객체를 직렬화하는 반면 후자는 객체를 직렬화하여 파일에 저장한다는 것입니다. 로드와 로드의 차이점은 전자는 직렬화된 문자열을 역직렬화하는 반면, 후자는 파일에서 직렬화된 문자열을 읽고 역직렬화한다는 것입니다.

dumps() 함수

dumps() 함수는 데이터를 특수 형식의 Python 언어에서만 인식되는 문자열로 변환할 수 있습니다. 예:

import pickle# dumps功能
import pickle
data = ['A', 'B', 'C', 'D']
print(pickle.dumps(data))

b '\x80\x03]q\x00(X\x01\x00\x00\x00Aq\x01X\x01\x00\x00\x00Bq\x02X\x01\x00\x00\x00Cq\x03X\x01\x00\x00\x00Dq\x04e.'

dump() 함수

dump() 함수는 변환할 수 있습니다. 데이터는 파이썬 언어에서만 인식되는 문자열로 특수한 형태로 변환되어 파일에 기록됩니다. 예:

# dump功能
with open('test.txt', 'wb') as f:
    pickle.dump(data, f)
    print('写入成功')

Write 성공적으로

loads() function

loads() 함수는 피클 데이터를 Python 데이터 구조로 변환할 수 있습니다. 예:

# loads功能
msg = pickle.loads(datastr)
print(msg)
['A', 'B', 'C', 'D']

load() function

load() 함수는 데이터 파일에서 데이터를 읽고 이를 Python 데이터 구조로 변환할 수 있습니다. 예:

# load功能with open('test.txt', 'rb') as f:
   data = pickle.load(f)
    print(data)
['A', 'B', 'C', 'D']

이 기사는 python tutorial 칼럼에서 가져온 것입니다. 학습을 환영합니다!

위 내용은 Python에서 Json 모듈 및 Pickle 모듈 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제