Python3 JSON 데이터 분석
JSON (JavaScript Object Notation)은 경량 데이터 교환 형식이다. 그것은 인 ECMAScript의 서브 세트에 기초한다.
Python3의 JSON 모듈은 인코딩 두 가지 기능을 포함 JSON 데이터를 디코딩하는데 사용될 수있다 :
- json.dumps () : 데이터를 인코딩.
- json.loads는 () : 데이터는 디코딩된다.
JSON 코덱 공정에서, 기본형 파이썬과 JSON 타입이 서로 전환 될 특정 변환 제어는 다음과 같다 :
파이썬 JSON은 형식 변환 대응표로 인코딩 :
파이썬 | JSON |
---|---|
DICT | 목적 |
리스트, 튜플 | 배열 |
STR | 현 |
INT, 플로트, INT-및 부동 파생 열거 형 | 수 |
참된 | 참된 |
그릇된 | 그릇된 |
없음 | 널 (null) |
JSON은 파이썬 형식 변환 대응 테이블을 디코딩 :
JSON | 파이썬 |
---|---|
목적 | DICT |
배열 | 명부 |
현 | STR |
번호 (INT) | INT |
수 (실제) | 플로트 |
참된 | 참된 |
그릇된 | 그릇된 |
널 (null) | 없음 |
json.dumps 및 json.loads 예
다음의 예는 JSON에 파이썬 데이터 구조를 보여줍니다
#!/usr/bin/python3 import json # Python 字典类型转换为 JSON 对象 data = { 'no' : 1, 'name' : 'w3big', 'url' : 'http://www.w3big.com' } json_str = json.dumps(data) print ("Python 原始数据:", repr(data)) print ("JSON 对象:", json_str)
위의 코드의 출력 결과를 실행합니다 :
Python 原始数据: {'url': 'http://www.w3big.com', 'no': 1, 'name': 'w3big'} JSON 对象: {"url": "http://www.w3big.com", "no": 1, "name": "w3big"}
그 결과 원래를 repr ()의 출력을 인코딩하여 단순 유형이어서, 출력을 통해 알 수있는 것은 매우 유사하다.
그런 다음 위의 예, 우리는 파이썬 데이터 구조에 다시 JSON 인코딩 된 문자열로 변환 할 수 있습니다 :
#!/usr/bin/python3 import json # Python 字典类型转换为 JSON 对象 data1 = { 'no' : 1, 'name' : 'w3big', 'url' : 'http://www.w3big.com' } json_str = json.dumps(data1) print ("Python 原始数据:", repr(data1)) print ("JSON 对象:", json_str) # 将 JSON 对象转换为 Python 字典 data2 = json.loads(json_str) print ("data2['name']: ", data2['name']) print ("data2['url']: ", data2['url'])
위의 코드의 출력 결과를 실행합니다 :
ython 原始数据: {'name': 'w3big', 'no': 1, 'url': 'http://www.w3big.com'} JSON 对象: {"name": "w3big", "no": 1, "url": "http://www.w3big.com"} data2['name']: w3big data2['url']: http://www.w3big.com
대신 문자열의 파일이 처리하려는 경우, 당신은 인코딩 및 디코딩 JSON 데이터에()와 json.load ()를json.dump 사용할 수 있습니다. 예를 들면 :
# 写入 JSON 数据 with open('data.json', 'w') as f: json.dump(data, f) # 读取数据 with open('data.json', 'r') as f: data = json.load(f)
자세한 내용을 참조하시기 바랍니다 https://docs.python.org/3/library/json.html