zoukankan      html  css  js  c++  java
  • python 中json 操作

    json 格式的例子:
    {
    "firstName": "John",
    "lastName": "Smith",
    "address": {
    "streetAddress": "21 2nd Street",
    "city": "New York",
    "state": "NY",
    "postalCode": 10021
    },
    "phoneNumbers": [
    { "type": "home", "number": "212 555-1234" },
    { "type": "fax", "number": "646 555-4567" }
    ],
    "newSubscription": false,
    "companyName": null
    }
    本质上就是一串格式化的字符串。

    JSON 的基本介绍:
    引用自:http://www.ruanyifeng.com/blog/2009/05/data_types_and_json.html

    21世纪初,Douglas Crockford寻找一种简便的数据交换格式,能够在服务器之间交换数据。这其实需要二步,第一步是将各种数据转化为一个字符串,也就是数据的串行化(serialization),第二步才是交换这个字符串。

    当时通用的数据交换语言是XML,但是Douglas Crockford觉得XML的生成和解析都太麻烦,所以他提出了一种简化格式,也就是Json。

    Json的规格非常简单,只用一个页面、几百个字就能说清楚,而且Douglas Crockford声称这个规格永远不必升级,因为该规定的都规定了。

    1) 并列的数据之间用逗号(“,”)分隔。

    2) 映射用冒号(“:”)表示。

    3) 并列数据的集合(数组)用方括号("[]")表示。

    4) 映射的集合(对象)用大括号(“{}”)表示。

    上面四条规则,就是Json格式的所有内容。

    比如,下面这句话:

    “北京市的面积为16800平方公里,常住人口1600万人。上海市的面积为6400平方公里,常住人口1800万。”

    写成json格式就是这样:

    [
    {"城市":"北京","面积":16800,"人口":1600},
    {"城市":"上海","面积":6400,"人口":1800}
    ]

    如果事先知道数据的结构,上面的写法还可以进一步简化:

    [
    ["北京",16800,1600],
    ["上海",6400,1800]
    ]

    由此可以看到,json非常易学易用。所以,在短短几年中,它就取代xml,成为了互联网上最受欢迎的数据交换格式。

    我猜想,Douglas Crockford一定事先就知道,数据结构可以简化成三种形式,否则怎么可能将json定义得如此精炼呢

    # smiplejson  的用法
    json.loads(js_obj)   
    json.dumps(py_obj)
     
    1. #!/usr/bin/env python  
    2.   
    3. import simplejson;  
    4.   
    5. #read string  
    6. date='[{"name":"Column_owner","point":"AKESH2880153908"},{"name":"Column_name","point":"wiken"}]';  
    7. jsonVal = simplejson.loads(date)  
    8.   
    9. for val in jsonVal:  
    10.     print val["name"]  
    11.     print val["point"]  
    12.   
    13. #read form file  
    14. jsonVal = simplejson.load(file('./a.json'));  
    15. for val in jsonVal:  
    16.     print(val);  
    17.     print("****"); 
     
     1 import simplejson as sjson
    2
    3 data='{"head_url":"http:\/\/fmn.xnpic.com\/fmn050\/20110510\/1505\/p_head_p1bd_1b75000aa0515c15.jpg","taggerName":"\u9676\u4e3d\u7426 ","ownerName":"\u5f20\u4e91\u97f5","photoHeight":635,"ownerId":367595542,"width":100,"targetId":278140092,"targetName":"\u6653\u5f64","id":111792259,"height":635,"topToPhoto":304,"photoId":"4333529326","main_url":"http:\/\/fmn.xnpic.com\/fmn050\/20110510\/1505\/p_main_beei_1b75000aa0515c15.jpg","leftToPhoto":203,"taggerId":298513582,"frameWidth":100,"left":203,"photoWidth":456,"top":304,"frameHeight":100}'
    4
    5 myjson = sjson.loads(data)
    6
    7
    8 #print data
    9 #print myjson
    10
    11 print type(myjson)
    12 print "***************11 keys:"
    13 print myjson.keys()
    14 print "***************22 values:"
    15 print myjson.values()
    16 print "***************33"
    17 #for i in myjson:
    18 # print i
  • 相关阅读:
    堆排序算法的原理和实现
    图的深度优先搜索(DFS)和广度优先搜索(BFS)算法
    图的迪杰斯特拉算法求最短路径
    第13章 切换到混合流并添加API访问
    第12章 添加对外部认证的支持
    第11章 使用OpenID Connect添加用户身份验证
    第10章 使用密码保护API
    第9章 使用客户端凭据保护API
    第8章 概述
    第7章 贡献
  • 原文地址:https://www.cnblogs.com/tangr206/p/2257435.html
Copyright © 2011-2022 走看看