python模块的使用 json模块

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

猜你喜欢

转载自blog.csdn.net/u010339879/article/details/79774292