10月11日学习总结

这篇博客介绍了Python中的文件操作,包括将素数写入文件和JSON序列化与反序列化。此外,讲解了HTTP协议、使用requests库进行网络请求以及从JSON数据中获取信息。最后,展示了如何利用openpyxl库创建和操作Excel文件。
摘要由CSDN通过智能技术生成

10月11日学习总结

一、练习:将100以内的素数输入到一个文件中

def is_prime(num:int) -> bool:
    """
    判断一个正整数是不是质数
    :param num: 正整数
    :return: 质数返回True,否则返回False
    """
    for i in range(2,sqrt(num)+1):
        if num%i == 0:
            return False
    return True

with open('prime.txt','w') as file:
for n in range(2,100):
    if is_prime(n):
        print(n)

二. 对象的序列化和反序列化

1.序列化(serialization)

把一个对象(字典、列表等)变成字符串(str)或者字节串(bytes-二进制数据)

2.反序列化(deserialization)

从字节串或字符串中还原一个对象(字典、列表等)

3.JSON的序列化操作

1.Python的标准库有一个json/pickle模块,可以支持我们做序列化和反序列化操作

2.Json

(1)JSON —> JavaScript Object Notation —> JavaScript语言创建对象的字面量语法

这种数据格式也非常适合在两个系统(尤其是异构的系统)传输数据(因为它是纯文本),所以今天当我们说到JSON,更多的时候是把它当成一种数据交换格式。

3.Python中的字典跟JSON格式非常相似,所以我们可以通过将字典转成JSON格式的字符串,就可以写入文件中实现持久化。

JSON序列化通用,所有编程语言都可读;字符串(txt文件)

4.json.dumps/json.dump

(1)json.dumps(变量, file=文件名):分两步,dumps先把对象变成字符串,然后再往file里写
content = json.dumps(变量)
file.write(content)
(3)json.dump(变量,fp=文件名):将dumps的两步合为一步

import json

person = {
    'name': '浩宇',
    'age': 25,
    'sex': True,
    'friends': ['赵云', '马超', '辛弃疾'],
    'car': {
        'brand': 'QQ',
        'max_speed': 120
    }
}
with open('person.txt', 'w') as file:
    # 序列化

    # content = json.dumps(person)
    # file.write(content)   # dumps先把对象变字符串

    # print(json.dumps(person), file=file)

    json.dump(person, fp=file)  # 可以指定参数

4. JSON的反序列化操作

  1. JSON:读取文件中的JSON格式数据还原成字典对象

    (1)json.load(fp=文件名)(2)json.loads(变量):变量是读文件获取到的字符串

    import json
    
    with open('person.txt') as file:
        # 反序列化:将字符串还原成(字典)
        # content = file.read()
        # obj = json.loads(content)
        # print(obj, type(obj))
    
        # 从文件中读取字符串还原成字典对象
        obj = json.load(fp=file)
        print(obj)
        print(type(obj))
    

三. 联网获取数据

1. URL

  1. URL —> 网址 —> 统一资源定位符 —> 能够唯一标识一个(网络)资源的符号
  2. URI —> 统一资源标识符 —> URL + URN
  3. 协议 —> 规范和标准 —> 网络协议 —> 通过网站进行通信的双方要遵守的规范和标准
  4. HTTP(S) —> 超文本传输协议(S:安全环境) —> 请求响应式协议

2.三方库

可以使用Python的包管理工具 pip 来安装和管理三方库以及三方工具
修改 pip 下载源为国内的镜像网站(推荐使用豆瓣网的镜像)
pip config set global.index-url https://pypi.doubanio.com/simple
查找三方库:pip serach requests
安装三方库:pip install requests
卸载三方库:pip uninstall requests
更新三方库:pip install -U requests

3.三方库requests的使用

使用三方库 requests 可以非常方便的实现通过URL访问网络资源的操作

requests.get(url=‘网址’, params={参数1、参数2、…}):get函数会通过你指定的URL向web服务器发起一个请求,该指数会返回一个响应对象

响应对象.json():url请求返回的是一个json文件,用.json转换成字典

json.loads(响应对象**.text**):字符串文件转回成字典

四. Excel文件操作

import openpyxl
创建一个Excel工作簿:workbook = openpyxl.Workbook()
获取默认的工作表:sheet = workbook.active
添加表头:sheet.append(列表、元组、字典等)
保存工作簿:workbook.save(‘文件名.xlsx’)

import openpyxl

# 创建一个Excel工作簿
workbook = openpyxl.Workbook()
# 获取默认的工作表
sheet = workbook.active
# 添加表头
sheet.append(('姓名','语文','数学','英语'))
sheet.append(('王博杨',50,60,70))
sheet.append(('李晓',50,60,70))
sheet.append(('王浩宇',50,60,70))
sheet.cell(5,1,'代吉')
# 保存工作簿
workbook.save('学生考试成绩表.xlsx')

import openpyxl
# 创建一个Excel工作簿
workbook = openpyxl.Workbook()
# 获取默认的工作表
sheet = workbook.active
# 添加表头
sheet.append(('姓名','年龄','电话号码'))
sheet.append(('wby','18','113'))
sheet.append(('lx','23','116'))
# 保存工作簿
workbook.save('学生信息.xlsx')
from datetime import datetime
import openpyxl
import requests
import json

workbook = openpyxl.Workbook()
sheet = workbook.active
sheet.append(('title','url','source'))
for page in range(1,6):
    resp = requests.get(
        url='http://api.tianapi.com/topnews/index',
        params={
            'key':'e8c5524dd2a365f20908ced735f8e480',
            'page':page,
            'num':20
        }
    )
    result = resp.json()
    # print(result)
    for news_dict in result['newslist']:
        sheet.append((news_dict['title'],news_dict['url'],news_dict['source']))
    current=datetime.now()
    workbook.save(f'新闻数据_{current.year}{current.month:0>2d}{current.day:0>2d}.xlsx')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值