zoukankan      html  css  js  c++  java
  • python入门24 json模块

    现在很多接口传参和响应都是json串。

    json.dumps()  python对象转化为json字符串

    json.loads()  json字符串转化为python对象。[]转变成list,{}转变成dict。

    1 python对象转成json

    '''2018-11-25 dinghanhua'''
    import
    json #python对象转化成json dictdata = {'title':'python','page':100,'name': 'python development' } print(dictdata) print(type(dictdata)) jsonstr = json.dumps(dictdata) #转化为json print(jsonstr) print(type(jsonstr))

    • 转换对应关系 false-False,true-True, object-dict, array - list, null-None
    jsonstr = '{"array": [1,2,3], "bool": false, "null": null}'
    data = json.loads(jsonstr)
    print(data)
    
    data = {'tuple': (1,2,3),'list': [1,2,3], 'bool': True, 'None': None}
    jsonstr = json.dumps(data)
    print(jsonstr)

    • 排序、缩进格式化显示
    jsonstr = json.dumps(dictdata,sort_keys=True) #排序
    print(jsonstr)
    
    jsonstr = json.dumps(dictdata,indent=4) #缩进显示
    print(jsonstr)

     

    • 是否转成ascii
    dictdata2 = [{"count":168,"name":"前端开发","title":"前端开发"},{"count":94,"name":"编程","title":"编程"}]
    print(dictdata2)
    print(type(dictdata2))
    
    jsonstr2 = json.dumps(dictdata2) #默认转成ascii
    print(jsonstr2)
    print(type(jsonstr2))
    
    jsonstr2 = json.dumps(dictdata2,ensure_ascii=False)
    print(jsonstr2)
    print(type(jsonstr2))

    2 json转成python对象

    #json对象转化为python对象
    jsonstr = '[{"count": 168, "name": "前端开发", "title": "前端开发"}, {"count": 94, "name": "编程", "title": "编程"}]'
    data = json.loads(jsonstr)
    print(data)
    print(type(data))

    3 转成json写入文件; 从文件读json转成python对象

    #转化成json写入文件
    data = [{'count': 168, 'name': '前端开发', 'title': '前端开发'}, {'count': 94, 'name': '编程', 'title': '编程'}]
    
    with open('1.json','w') as f:
        json.dump(data,f,indent=4,ensure_ascii=False)
    
    #从文件读取json转成python对象
    with open('1.json','r') as f:
        data = json.load(f)
        print(data)
        print(type(data))

    官网:https://docs.python.org/3/library/json.html

  • 相关阅读:
    POJ 1201 Intervals 差分约束
    netframework2.0,asp.net2.0,vs.net 2005
    学习.net第一天
    VS.NET 2003 控件命名规范
    .Net生成共享程序集
    汉字的编码
    [转]用C#实现连接池
    SQL表自连接用法
    一道很好玩的OOP面试题,今天比较有空,所有做了一下
    C#编程规范(2008年4月新版)
  • 原文地址:https://www.cnblogs.com/dinghanhua/p/10015828.html
Copyright © 2011-2022 走看看