Fork me on GitHub

python json数据的转换

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)

  运行结果:

  

 

posted @ 2019-01-16 10:50  路痴队长  阅读(885)  评论(0编辑  收藏  举报