【爬虫笔记】json文件处理

json文件处理

什么是json

        JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

JSON支持数据格式

  1. 字典。使用花括号。
  2. 列表。使用方括号。
  3. 整形、浮点型、布尔类型、None类型。
  4. 字符串类型(字符串必须要用双引号,不能用单引号)。

多个数据之间使用逗号分开,json本质上就是一个字符串。

字典和列表转JSON

import json

movies = [
    {
        'title': '盗梦空间',
        'price': 9.3
    },
    {
        'title': '楚门的世界',
        'price': 9.3
    }
]

json_str1 = json.dumps(movies)
json_str2 = json.dumps(movies, ensure_ascii=False)

print(json_str1)
print(json_str2)
[{"title": "\u76d7\u68a6\u7a7a\u95f4", "price": 9.3}, {"title": "\u695a\u95e8\u7684\u4e16\u754c", "price": 9.3}]
[{"title": "盗梦空间", "price": 9.3}, {"title": "楚门的世界", "price": 9.3}]

        由于json在dump的时候,只能存放ASCII的字符,因此会将中文进行转义,这时候我们可以使用ensure_ascii=False关闭这个特性。
        在Python中。只有基本数据类型intfloatstrlistdicttuple才能转换成JSON格式的字符串。

将json数据直接dump到文件中:

        json模块中除了dumps函数,还有一个dump函数,这个函数可以传入一个文件指针,直接将字符串dump到文件中。

import json

movies = [
    {
        'title': '盗梦空间',
        'price': 9.3
    },
    {
        'title': '楚门的世界',
        'price': 9.3
    }
]

with open('movie.json', 'w') as fp:
    json.dump(movies, fp)

将一个json字符串load成Python对象:

import json

jsonStr = '[{"title": "星际穿越", "price": 9.3}, {"title": "机器人总动员", "price": 9.3}]'

books = json.loads(jsonStr, encoding='utf-8')

print(type(books))
print(books)
<class 'list'>
[{'title': '星际穿越', 'price': 9.3}, {'title': '机器人总动员', 'price': 9.3}]

直接从文件中读取json:

import json

with open('movie.json', 'r', encoding='utf-8') as fp:
    jsonStr = json.load(fp)
    print(jsonStr)
  • 1
    点赞
  • 0
    收藏 更改收藏夹
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敢飞就有天空

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值