python json 保存文件_手把手教你用Python处理JSON文件(翻译)

8d9280996ec38760c7147f336704f9d4.png

译者得话

在写爬虫程序的过程中,若网站的响应式JSON格式,我们则可以通过提取键值,来获取我们想要的内容。

60fde04be7c54aa985bd0156cb069c7e.png
json格式的响应

JSON,全称为JavaScipt Oject Notation,构造简洁但是结构化程度非常高,是一种轻量级的数据交换格式。

实际上,任何支持得类型都可以通过JSON来表示,例如字符串、数字、对象、数组等,但是对象和数组是比较特殊且常用得两种类型。

  • 对象:在JavaScript是使用花括号{}包裹起来的内容,数据结构为{key1:value1,key2:value2,......,keyN:valueN}的键值对结构。在面向对象的语言中,key为对象的属性,value为对应的值。键名可以使用整数和字符串来表示。值得类型可以是任意类型。
  • 数组:数组在JavaScript是方括号[]包裹起来得内容,数据结构为["java","javascript","vb",...]得索引结构。在JavaScript中,数组是一种比较特殊的数据类型,它也可以像对象那样使用键值对,但还是索引用得多。同样,值的类型可以是任意类型。

一个标准的JSON对象如下:

{"medical": [
      { "room-number": 100,
        "use": "reception",
        "sq-ft": 50,
        "price": 75
      },
      { "room-number": 101,
        "use": "waiting",
        "sq-ft": 250,
        "price": 75
      },
      { "room-number": 102,
        "use": "examination",
        "sq-ft": 125,
        "price": 150
      },
      { "room-number": 103,
        "use": "examination",
        "sq-ft": 125,
        "price": 150
      },
      { "room-number": 104,
        "use": "office",
        "sq-ft": 150,
        "price": 100
      }
    ]
}

这里,[......]相当于列表类型,列表中的每一个元素可以是任意类型,这个示例中它是字典类型,由大括号包围。

而[......]由被一个大括号包围,即一个外字典。这样的写法应该很符合我们日常记录的方法。

这页说明JSON由以上两种形式自由组合而成,可以无限次嵌套,结构清晰,是数据交换的极佳方式。

JSON in Python

JSON可存储列表、布尔值、数字、元组、字典,但要把JSON写进文件,则以上的数据类型需被转换为字符串数据类型,因为只有字符串可被读取或者写进文件中。Python提供JSON模块,用来帮助使用者做数据类型转换。

import json

JSON模块主要用来将python的字典类型数据转换为JSON字符串类型,然后将数据写进文件中

1c8f231a4dcefe46d0b8b95a0dd8ea89.png

JSON模块也可将JSON字符串转换为字典数据结构。

743aa3accfb9f18065b009a870dc99f4.png

Writing a JSON 文件

使用Json.dumps函数可以直接将json字符串丢进文件中。

注意:此时只有JSO格式的字符串才可被写进文件中。

bc205139b05d18f32a2a319588ed0b30.png

Reading JSON

在JSON文件中读取JSON文件,可以使用Json.load()函数。

14d35af2fe885d42829f0bf933221646.png

异常提示我们.loads的参数必须是:字符串(str)、字节(bytes)、字节数组(bytearray),演示如下:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值