json详解及python处理

简单记录json的语法以及与python之间的数据关系等,如有错误欢迎指正!

一、json语法

  1. json是javascript的子集,因此使用javascript语法
  2. 数据在名称/值对中,双引号表示
  3. 数据由逗号分隔
  4. { } 保存对象
  5. [ ] 保存数组,数组可以包含多个对象

示例如下:

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [
          114.2750633,
          30.64403765
        ]
      },
    },
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [
          114.7284873,30.68291017

        ]
      },
    }
  ]
}

二、python中的json处理

  1. python与json数据类型对应表

PythonJson数据类型说明
dictobject字典(无序)
list,tuplearray序列(有序)
strstring字符串
int,floatnumber数字类型
True,Falsetrue,false布尔值True,False
Nonenull空值

       2. python字典与json对象

//python的字典定义
dict = {'name':'xiaoming', 'age':17, 'sex':null}

//访问dict元素
x = dict['name']


//json的object定义
myObjcet = {"name":"xiaoming", "age":17, "sex":null};

//访问object元素
y1 = myObject.name;
y2 = myObject["name"];

(1)共同点:存储的均是键值对,key唯一且不可变,value可以取任何语法内的类型

(2)不同点:json对象的key必须使用双引号" ".

      3. python序列与json数组

//python-list定义和访问
list1 = ['abc', 12]
print(list1[0])

//python-tuple定义和访问
tuple1 = ('ab', 123)
print(tuple1[1])


//json-array定义和访问
array1 = ["xiaoming", "google"]
print(array1[0])

(1)tuple与list相似,不同点在于 #1 元组的元素不能修改; #2 元组用小括号表示

(2)json的数组可包含多个array或object

    注(json):{ }包含的是键值对,value可以是任何类型;

                     [ ]也可包含任何类型.

     4. python处理json文件

json.loads()将json数据转换为python数据
json.dumps()将python数据转换为json数据
json.load()从json文件中读取数据并解码
json.dump()将python数据编码并写入json文件
import json

//读取文件,将json字符串解码为python对象
with open('xxx.json','r') as f1:  #读取平台格式数据
    json_data = f1.read()
    py_data = json.loads(json_data)
    
//写入文件,将python对象编码成json字符串
jsonstr = json.dumps(data, indent=2, separators=(',',":"))
with open('yyy.json','w') as f2:
    f2.write(jsonstr)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值