常用json就知道,json模块提供了四个常用的方法:dumps、dump、loads、load,用于字符串 和 python数据类型间进行转换。下面我们一一来看:
1. json.loads()
把Json格式字符串解码转换成Python对象 从json到python的类型转化对照如下:
# json_loads.py
strDict = '{"city": "北京", "name": "大猫"}'
# [1, 2, 3, 4]
# json数据自动按Unicode存储
# {u'city': u'\u5317\u4eac', u'name': u'\u5927\u732b'}
2. json.dumps()
实现python类型转化为json字符串,返回一个str对象 把一个Python对象编码转换成Json字符串
从python原始类型向json类型的转化对照如下:
建立新文件名:json_dumps.py
import json
import chardet
listStr = [1, 2, 3, 4]
tupleStr = (1, 2, 3, 4)
dictStr = {"city": "北京", "name": "大猫"}
json.dumps(listStr) # '[1, 2, 3, 4]'
json.dumps(tupleStr) # '[1, 2, 3, 4]'
# 注意:json.dumps() 处理中文时默认使用的ascii编码,会导致中文无法正常显示
print json.dumps(dictStr)
# 记住:处理中文时,添加参数 ensure_ascii=False 来禁用ascii编码
print json.dumps(dictStr, ensure_ascii=False)
# {"city": "北京", "name": "大刘"}
json.dumps(res, indent=2, sort_keys=True)格式化输出并按键排序。
3. json.dump()
将Python内置类型序列化为json对象后写入文件
# json_dump.py
listStr = [{“city”: “北京”}, {“name”: “大刘”}]
dictStr = {“city”: “北京”, “name”: “大刘”} json.dump(dictStr,
open(“dictStr.json”,”w”), ensure_ascii=False)
4. json.load()
读取文件中json形式的字符串元素 转化成python类型
# json_load.py
strList = json.load(open("listStr.json"))
print strList
print strDict
# {u'city': u'\u5317\u4eac', u'name': u'\u5927\u5218'}