zoukankan      html  css  js  c++  java
  • What is JSON

    JSON (JavaScript Object Notation)  是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。

    JSON具有以下这些形式:

    对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。

    Python3 中可以使用 json 模块来对 JSON 数据进行编解码,它包含了两个函数:

    • json.dumps(): 对数据进行编码。
    • json.loads(): 对数据进行解码。

    在json的编解码过程中,python 的原始类型与json类型会相互转换,具体的转化对照如下:

    Python 编码为 JSON 类型转换对应表:

    PythonJSON
    dict object
    list, tuple array
    str string
    int, float, int- & float-derived Enums number
    True true
    False false
    None null

    JSON 解码为 Python 类型转换对应表:

    JSONPython
    object dict
    array list
    string str
    number (int) int
    number (real) float
    true True
    false False
    null None

     json.dumps 与 json.loads 实例

    以下实例演示了 Python 数据结构转换为JSON:

     1 #!/usr/bin/python3
     2 
     3 import json
     4 
     5 # Python 字典类型转换为 JSON 对象
     6 data = {
     7     'no' : 1,
     8     'name' : 'Runoob',
     9     'url' : 'http://www.runoob.com'
    10 }
    11 
    12 json_str = json.dumps(data)
    13 print ("Python 原始数据:", repr(data))
    14 print ("JSON 对象:", json_str)

     执行以上代码输出结果为:

    Python 原始数据: {'url': 'http://www.runoob.com', 'no': 1, 'name': 'Runoob'}
    JSON 对象: {"url": "http://www.runoob.com", "no": 1, "name": "Runoob"}

    通过输出的结果可以看出,简单类型通过编码后跟其原始的repr()输出结果非常相似。

    接着以上实例,我们可以将一个JSON编码的字符串转换回一个Python数据结构:

     1 #!/usr/bin/python3
     2 
     3 import json
     4 
     5 # Python 字典类型转换为 JSON 对象
     6 data1 = {
     7     'no' : 1,
     8     'name' : 'Runoob',
     9     'url' : 'http://www.runoob.com'
    10 }
    11 
    12 json_str = json.dumps(data1)
    13 print ("Python 原始数据:", repr(data1))
    14 print ("JSON 对象:", json_str)
    15 
    16 # 将 JSON 对象转换为 Python 字典
    17 data2 = json.loads(json_str)
    18 print ("data2['name']: ", data2['name'])
    19 print ("data2['url']: ", data2['url'])

     执行以上代码输出结果为:

    Python 原始数据: {'name': 'Runoob', 'no': 1, 'url': 'http://www.runoob.com'}
    JSON 对象: {"name": "Runoob", "no": 1, "url": "http://www.runoob.com"}
    data2['name']:  Runoob
    data2['url']:  http://www.runoob.com

    如果你要处理的是文件而不是字符串,你可以使用 json.dump()json.load() 来编码和解码JSON数据。例如:

    1 # 写入 JSON 数据
    2 with open('data.json', 'w') as f:
    3     json.dump(data, f)
    4 
    5 # 读取数据
    6 with open('data.json', 'r') as f:
    7     data = json.load(f)



    ************************************************************************

    copy from: http://www.runoob.com/python3/python3-json.html

    the more please reference to : https://docs.python.org/3/library/json.html

  • 相关阅读:
    打包.a 文件时, build phases- Link Binary With Libraries
    Undefined symbols for architecture i386: "_deflate", referenced from:
    iOS 9 failed for URL: "XXX://@"
    ASP.NET 生成二维码(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
    ASP.NET中利用DataList实现图片无缝滚动
    老码农教你在 StackOverflow 上谈笑风生
    ASP.NET 生成二维码(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
    Asp.net面试题
    Asp.Net之后台加载JS和CSS
    .net环境下从PDF文档中抽取Text文本的一些方法汇总
  • 原文地址:https://www.cnblogs.com/zhongyuping/p/7787030.html
Copyright © 2011-2022 走看看