1 Python数据转json字符串
import json
json_str = json.dumps(py_data)
参数解析:
json_str = json.dumps(py_data,sort_keys=True,indent =4,separators=(',', ': '),encoding="gbk",ensure_ascii=True )
print json_dic2
- ensure_ascii:默认值True,如果dict内含有non-ASCII的字符,则会类似uXXXX的显示数据,设置成False后,就能正常显示
- indent:应该是一个非负的整型,如果是0,或者为空,则一行显示数据,否则会换行且按照indent的数量显示前面的空白,这样打印出来的json数据也叫 pretty-printed json
- separators:分隔符,实际上是(item_separator, dict_separator)的一个元组,默认的就是(',',':');这表示dictionary内keys之间用“,”隔开,而KEY和value 间用“:”隔开。
- encoding:默认是UTF-8,设置json数据的编码方式。
- sort_keys:将数据根据keys的值进行排序。
2 json数据转python数据
import json
py_data = json.loads(json_str)
3 json.dump()和json.load()是对文件流的操作
json.dump(x,f),x是对象,f是一个文件对象,这个方法可以将json字符串写入到文本文件中。
json.load()加载json格式文件读取json数据转为python数据 下面是从txt文件中读取了json数据
具体转化时,类型变化规则如下所示:
python --> json
json --> python
转化重点提示:python中的元组(tuple)转变为json字符串式 tuple类型变为json数组类型(以列表形式展示) 将其转回为python对象时,json数组类型也并没有转回成tuple类型,而是转变为python 列表 而且编码格式也发生了变化,变成了Unicode编码!
Demo:
# 将python对象test转换json对象
test = [{"username":"测试","age":16},(2,3),1]
python_to_json = json.dumps(test,ensure_ascii=False)
print python_to_json
print type(python_to_json)
# 将json对象转换成python对象
json_to_python = json.loads(python_to_json)
print json_to_python print type(json_to_python)
运行结果: