json 模块
python对象与json互转
- json.dumps(): 字典转json
- json.loads(): json转字典
import json
course = {
'languages': ['PHP', 'Java', 'Pyton'],
'book': {
'Python 入门': {'price': 55.5, 'author': 'Lily', 'available': True, 'repertory': 20, 'date': '2018-02-17'},
'Java 入门': {'price': 60, 'author': 'Lily', 'available': False, 'repertory': None, 'date': '2018-02-17'}
}
}
# dumps 方法,将python字典对象转化为json字符串
course_str = json.dumps(course)
print(type(course_str)) # <class 'str'>
print(course_str) # {"languages": ["PHP", "Java", "Pyton"], "book": {"Python \u5165\u95e8": {"price": 55.5, "author": "Lily", "available": true, "repertory": 20, "date": "2018-02-17"}, "Java \u5165\u95e8": {"price": 60, "author": "Lily", "available": false, "repertory": null, "date": "2018-02-17"}}}
# loads 方法,将json字符串转化为python字典对象
course_dic = json.loads(course_str)
print(type(course_dic)) # <class 'dict'>
print(course_dic) # {'languages': ['PHP', 'Java', 'Pyton'], 'book': {'Python 入门': {'price': 55.5, 'author': 'Lily', 'available': True, 'repertory': 20, 'date': '2018-02-17'}, 'Java 入门': {'price': 60, 'author': 'Lily', 'available': False, 'repertory': None, 'date': '2018-02-17'}}}
json文件读写
- json.dump() 写文件
- json.load() 读文件
import json
course = {
'languages': ['PHP', 'Java', 'Pyton'],
'book': {
'Python 入门': {'price': 55.5, 'author': '李四', 'available': True, 'repertory': 20, 'date': '2018-02-17'},
'Java 入门': {'price': 60, 'author': '张三', 'available': False, 'repertory': None, 'date': '2018-02-17'}
}
}
# python字典对象 -> json 文件
# dump 方法将python字典转化为json字符串并写入到文件中
with open("./course.json","w",encoding="utf-8") as f:
json.dump(course,f)
# json 文件 -> python 字典对象
# load 方法将json字符串文件流转化为python字典对象
with open("./course.json","r",encoding="utf-8") as f:
data = json.load(f)
print(type(data)) # <class 'dict'>
print(data) # {'languages': ['PHP', 'Java', 'Pyton'], 'book': {'Python 入门': {'price': 55.5, 'author': '李四', 'available': True, 'repertory': 20, 'date': '2018-02-17'}, 'Java 入门': {'price': 60, 'author': '张三', 'available': False, 'repertory': None, 'date': '2018-02-17'}}}
yaml 模块
pip install pyyaml
yaml文件读写
- yaml.safe_load(): 读文件
- yaml.dump(): 写文件
- course.yml
# 编程语言
languages:
- PHP
- Java
- Pyton
# 书籍
book:
Java 入门: # 书籍名称
author: 张三
available: false
date: '2018-02-17'
price: 60
repertory: null
Python 入门:
author: 李四
available: true
date: '2018-02-17'
price: 55.5
repertory: 20
- py
import yaml
# yaml 文件 -> python 对象
# safe_load 方法读取yaml文件中的内容,转化为python对象
with open("./course.yml","r",encoding="utf-8") as f:
data = yaml.safe_load(f)
print(type(data)) # <class 'dict'>
print(data) # {'languages': ['PHP', 'Java', 'Pyton'], 'book': {'Java 入门': {'author': '张三', 'available': False, 'date': '2018-02-17', 'price': 60, 'repertory':None}, 'Python 入门': {'author': '李四', 'available': True, 'date': '2018-02-17', 'price': 55.5, 'repertory': 20}}}
# python 对象->yaml 文件
# 用dump 方法把 python 对象转为yaml 文档
with open("./course2.yml","w",encoding="utf-8") as f:
# 如果写入内容包含中文,allow_unicode=True
yaml.dump(data,f,allow_unicode=True)
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。