json 数据格式,是目前传输数据常用的格式了, Python 提供了一个json 模块, 就非常好用, 提供函数 也比较好用,这里简单分享一下.
这个模块的功能主要 就是 将json字符串 互转 json 对象, 也就是Python 中的字典. 也就是 序列化,与反序列化 .
直接看代码:
1 一个Python数据结构转换为JSON 字符串
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import json
person = {
'name' : 'ACME',
'sex':'male',
'height' : 100,
'price' : 542.23,
'hobby':'sing'
}
# 一个Python数据结构转换为JSON 字符串
json_str = json.dumps(person)
print (json.dumps(person,indent=4)) 如果让打印更加美观. indent =4
2 一个JSON编码的字符串转换回一个Python数据结构 loads
#一个JSON编码的字符串转换回一个Python数据结构 loads
stat = json.loads(json_str)
print stat
print type(stat)
3 将一个python 的字典 ,写入到文件中, dump
with open('person.json','w') as fw:
json.dump(person,fw)
这样就在当前目录下面, 生成了 person.json 文件了. 将字典 写到文件中了. 4 将一个 python 文件,转化成 Python 对象, 也就是字典
with open('person.json','r') as fr:
person = json.load(fr)
print person
print type(person)
5 将一个JSON字典转换为一个Python对象
# 如何将一个JSON字典转换为一个Python对象例子
class JsonObject:
def __init__(self, d):
self.__dict__ = d
if __name__ == '__main__':
s = '{"name": "ACME", "shares": 50, "price": 490.1}'
person = json.loads(s, object_hook=JsonObject)
print (person.name,person.price)
print(person)
总结: json 模块的接口 相对比较简单 , dumps , dump , load,loads 这些函数的使用,还有一个如何将 一个json字符串 转成python 的对象. 使用了, objec_hook 这个参数.
参考文档: http://python3-cookbook.readthedocs.io/zh_CN/latest/c06/p02_read-write_json_data.html
分享快乐,留住感动. 2018-03-31 23:19:53 --frank