python中如何处理json数据

JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式。XML也是一种数据交换格式,为什么没有选择XML呢?因为XML虽然可以作为跨平台的数据交换格式,但是在JS(JavaScript的简写)中处理XML非常不方便,同时XML标记比数据多,增加了交换产生的流量,而JSON没有附加的任何标记,在JS中可作为对象处理,所以我们更倾向于选择JSON来交换数据。这篇文章主要从以下几个方面来说明JSON。

1,JSON的两种结构
2,认识JSON字符串

JSON的两种结构

JSON有两种表示结构,对象和数组。
对象结构以”{”大括号开始,以”}”大括号结束。中间部分由0或多个以”,”分隔的”key(关键字)/value(值)”对构成,关键字和值之间以”:”分隔,语法结构如代码。

{
    key1:value1,
    key2:value2,
    ...
}

其中关键字是字符串,而值可以是字符串,数值,true,false,null,对象或数组

数组结构以”[”开始,”]”结束。中间由0或多个以”,”分隔的值列表组成,语法结构如代码。

[
    {
        key1:value1,
        key2:value2 
    },
    {
         key3:value3,
         key4:value4   
    }
]

认识JSON字符串

之前我一直有个困惑,分不清普通字符串,json字符串和json对象的区别。经过一番研究终于给弄明白了。比如在js中。

字符串:这个很好解释,指使用“”双引号或’’单引号包括的字符。例如:var comStr = 'this is string';
json字符串:指的是符合json格式要求的js字符串。例如:var jsonStr = "{StudentID:'100',Name:'tmac',Hometown:'usa'}";
json对象:指符合json格式要求的js对象。例如:var jsonObj = { StudentID: "100", Name: "tmac", Hometown: "usa" };

注意:我们在写入文件中的数据,只能是字符串,但是如果要想把内存的数据对象存到硬盘上去怎么办呐?

总结:如果是从文件中读数据,就用json.load,因为文件中的数据都是字符串类型,要把字符串转成json类型;如果是把内存中的东西,写入到文件中,就需要把json类型转换成字符串类型,用json.jump

 dump()

import  json
 
info = {
    'name':"zhangqigao",
    "age":22
}
 
with open("test.txt","w") as f:   #文件以写的方式打开
    json.dump(info,f)    #第1个参数是内存的数据对象 ,第2个参数是文件句柄
 
#text.txt文件中的内容
{"name": "zhangqigao", "age": 22}

   load()反序列化

import json
 
with open("test.txt","r") as f:   #以读的方式打开文件
    data = json.load(f)  #输入文件对象
 
print(data.get("age"))
 
#输出
22

json与dict的区别

  • Python 的dict是一种数据结构,json 是一种数据传输格式
  • Python的dict的key可以是任意可hash对象,json只能是字符串。形式上有些相像,但json是纯文本的,无法直接操作
  • json的格式要求必须且只能使用双引号作为key或者值的边界符号,不能使用单引号,但dict就无所谓了。
  • python的dict的Key是唯一的,而json的Key可以重复。
  •  

     

 

posted @ 2020-11-21 20:56  haoaixiao  阅读(2350)  评论(0编辑  收藏  举报