二进制和字符串之间的互相转换 及 json文件和csv文件
-
二进制和字符串之间的互相转换
-
字符串转二进制
-
将字符串数据转换成二进制数据
str1 = 'abc' b_str1 = b'abc' # 在字符串引号前面加b print(type(str1), type(b_str1)) # <class 'str'> <class 'bytes'>
-
bytes(字符串)
str2 = 'hello' result = bytes(str2, encoding='utf-8') print(type(result)) # <class 'bytes'>
-
字符串.encode(encoding='utf-8')
str3 = 'python数据' result = str3.encode() print(type(result)) # <class 'bytes'>
-
-
二进制转字符串
-
类型转换:
str(二进制, encoding='utf-8')
b1 = b'123abc' print(b1) # b'123abc' print(str(result, encoding='utf-8')) # '123abc'
-
二进制.decode(encoding='utf-8')
str3 = 'python数据' result = str3.encode() #转换成二进制 b'python数据' result = result.decode() # 转换成字符串 print(result)
-
-
-
json和csv数据文件
-
json文件数据
-
需引入系统模块
json
和requests
# 需要引入系统模块 # 系统模块json中提供所有json和python之间相互转换的相关函数 import json import requests
-
什么是json
# json是一种用来进行传输的通用的数据格式中的一种(另外一种是xml)。 # 这种数据格式的数据在网络传输的时候最大的优势就是小(速度快)
-
json数据格式
""" 1)格式要求:一个json有且只能有一个数据;这个唯一的数据必须是json支持类型的数据。 2)json支持的数据类型对应的数据 数字类型 - 直接写,例如:100,12.5,-23.5,23.8,3e2 (正数前面不能写+) 字符串 - 必须使用双引号, 支持转义字符,例如:"name", "张三", "abc\n123\u4e00" 布尔 - 只有 true 和 false两个值 null - 和None功能一样,表示空 数组 - 和列表一样,[元素1, 元素2, 元素3, ...] 字典 - {键1:值1, 键2:值2,...},键只能是字符串 """
-
python数据与json数据之间的相互转换
-
json转python(
json.loads(json格式的字符串:str
))""" a. 转换原则 json -> python 数字 int、float 字符串 str(可能会将双引号变成单引号) 布尔 bool (true -> True; false -> False) null None 数组 list 字典 dict b.工具: json.loads(json格式的字符串: str) - 将json数据转换成对应的Python数据 json字符串 - json中的字符串,必须用双引号 json格式的字符串 - 字符串内容是json数据的字符串 """ # 系统模块json中提供所有json和python之间相互转换的相关函数 import json import requests result = json.loads('123') print(result, type(result)) result = json.loads('"abc"') print([result], type(result)) result = json.loads('[120, "abc", true, null]') print(result) requests.get('http://api.tianapi.com/txapi/ncovabroad/index?key=c9d408fefd8ed4081a9079d0d6165d43') result = response.text # result = response.json 这里可以直接.json,直接是python类型的 data = json.loads(result) for x in data['newslist']: print(x['provinceName'])
-
python转json(
json.dumps(python数据
))""" a. 转换原则 python -> json int、float 数字 str 字符串引号会变成双引号 bool True -> true; False -> false None null list、tuple 数组 dict 字典 b.工具: json.dumps(python数据) - 将python转换成json格式的字符串 """ # 系统模块json中提供所有json和python之间相互转换的相关函数 import json import requests result = json.dumps([10, 'abc', True, [1, 2], (10, 20), {'a': 10, 10: 20}]) print(result) # '[10, "abc", true, [1, 2], [10, 20], {"a": 10, "10": 20}]' # result = json.dumps({1, 2})
-
-
-
csv文件(需引入系统模块
csv
)-
读csv文件中的内容
import csv # 引入csv """ 1) 打开文件 2)创建reader或者DictReader csv.reader(csv文件对象) -> 返回的是一个迭代器(序列),迭代器中的元素是每一行数据对应的列表 csv.DictReader(csv文件对象) -> 返回的是一个迭代器(序列),迭代器中的元素是每一行数据对应的字典,字典的key是第一行的数据 csv.DictReader(csv文件对象, 指定的key: list) -> 返回的是一个迭代器(序列),迭代器中的元素是每一行数据对应的字典,字典的key是指定的数据 """ def list_reader(): with open('files/豆瓣电影.csv', encoding='utf-8', newline='') as f: # a. 列表的reader reader = csv.reader(f) print(next(reader)) # ['排名', '电影名称', '评分'] print('========================================================') for x in reader: print(x) def dict_reader(): with open('files/豆瓣电影.csv', encoding='utf-8', newline='') as f: # 1)直接使用第一行的数据作为返回的字典的键 # reader = csv.DictReader(f) # print(reader.fieldnames) # ['排名', '电影名称', '评分'] # # print(next(reader)) # {'排名': '1', '电影名称': '肖申克的救赎', '评分': '9.7'} # for x in reader: # print(x) # 2)自定义每个数据对应的键 reader = csv.DictReader(f, ['ranking', 'name', 'score']) next(reader) # 去掉原来的第一行的字段 for x in reader: print(x)
-
csv文件的写操作
""" 1) 打开文件 2) 创建writer 3) 写入数据 """ def list_writer(): with open('files/data1.csv', 'w', encoding='utf-8', newline='') as f: writer = csv.writer(f) writer.writerow(['商品名', '商品编号', '商品的价格', '商品分类']) writer.writerow(['可口可乐', 'g001', 5, '饮料']) writer.writerows([ ['薯片', 'g002', 3.5, '垃圾食品'], ['辣条', 'g003', 1, '面食'], ['苹果', 'g004', 6, '水果'] ]) def dict_writer(): with open('files/data2.csv', 'w', encoding='utf-8', newline='') as f: writer = csv.DictWriter(f, ['name', 'id', 'price', 'type']) # 手动添加第一行的字段 # writer.writeheader() # 将设置的字段的值作为第一行内容写入文件中 writer.writerow({'name': '商品名称', 'id': '商品编号', 'price': '商品价格', 'type': '商品类型'}) writer.writerow({'name': '面包', 'id': 'g007'}) writer.writerows([ {'name': '雪碧', 'id': 'g008', 'price': 3, 'type': '碳酸饮料'}, {'name': '瓜子', 'id': 'g009'} ]) dict_writer()
-
-