Python-Json模块用法详解

import json

  • dumps 把python类型(dict, list)转换为json字符串

    dic = {
           'a':1, 'b':2, 'c':3}
    # 把dic转换成json字符串 
    # ensure_ascii=False 是关闭把中文转换成ASCII
    # indent=4 写入到文件中自动格式化
    json_str = json.dumps(ret1, ensure_ascii=False, indent=4)
    with open('xxx.json', 'w', encoding='utf-8') as f:
    # 把json字符串写入文件,或者返回给前端等等
       		f.write(json_str)
    
  • loads 把json字符串转换为python类型(dict, list)

    with open('xxx.json', 'r', encoding='utf-8') as f:
    json_str = f.read()
    dic = json.loads(json_str)  # 转换为python类型
    
  • load 把json文件对象提取出来, 并转换为python类型

    with open('xxx.json', 'r', encoding='utf-8') as f:
        dic = json.load(f)  # 从json文件反序列化到python类型
    
  • dump 把python类型序列化为json对象, 并写入到文件中

    dic = {
           'a':1, 'b':2, 'c':3}
    with open('xxx.json', 'w', encoding='utf-8') as f:
        json.dump(dic, f)   # 把python类型序列化到文件对象中
    

其他知识点

  • Skipkeys:默认值是False,如果dict的keys内的数据不是python的基本类型(str,unicode,int,long,float,bool,None),设置为False时,就会报TypeError的错误。此时设置成True,则会跳过这类key
  • 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的值进行排序。

你可能感兴趣的:(Python,itmeng,Json,Python)