快捷搜索:  汽车  科技

python中五种存储方式(五种使用python储存数据的方式)

python中五种存储方式(五种使用python储存数据的方式)con = json.loads(content) # 使用json load读取文件内容,然后可以直接用列表或者字典的方式去操作con这个变量[python] view plain copyimport json # 此时有一个json文件,结构大概是 [{} {} {}...] 打开这个文件

在python编程开发中,总是不可避免的遇到数据储存的问题,下面就介绍python与几种数据储存方式交互的方法。

json文件

json是一种轻量级的数据交换格式。采用完全独立于编程语言的文本格式来存储和表示数据。层次结构简洁而清晰,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

最主要的是,通过json这个包可以很方便的解决无论是py2还是py3中的编码问题,json的内容结构也近似于python中的字典和列表,操作起来特别方便。

[python] view plain copy

  1. import json

  2. # 此时有一个json文件,结构大概是 [{} {} {}...] 打开这个文件

  3. # 使用json load读取文件内容,然后可以直接用列表或者字典的方式去操作con这个变量

  4. con = json.loads(content)

  5. # 那么如何储存为json文件呢?

  6. # 使用dumps将列表序列化并且转换为unicode编码,储存的时候,就可以存你最喜欢的utf-8了

  7. lis = [{} {} {}...]

  8. data = json.dumps(lis ensure_ascii=False)

  9. f.write(data.encode('utf-8'))

csv文件

  • import csv

  • # 打开文件

  • with open(filename 'w') as f:

  • writer = csv.writer(f) # 构造写入器

  • data = ('1' '2' '3') # 填写三格

  • data = ('' '' '3') # 填写一格,前两格空起来

  • data = ('1' '') # 填写第一格,后面无论多少格都空起来

  • writer.writerow(data) # writerow每执行一次,写入一行 注意其中的参数data需要是一个元组

  • # 注意,在windows中,打开文件需要使用 with open(filename 'w' newline='') as f: # 否则每写一行都会多一个空行 # 原因是 windows中换行符号是 \n\r ,csv库中并没有做特别的处理 所以会产生空行

    MySQL数据库

    应该是最常用的操作了,使用mysql的优点是看数据真的很直观(如果使用GUI程序的话)

    [python] view plain copy

    1. 导入包略微不一样

    2. @python3

    3. import pymysql

    4. @python2

    5. import MySQLdb

    6. # 建立连接 注意数据库写入数据时数据的编码

    7. conn = MySQLdb.connect(host='localhost' port=3306 db='test'

    8. user='root' passwd='' charset='utf8')

    9. # 新建游标 游标操作sql语句

    10. cur = conn.cursor()

    11. result = cur.execute("insert into students(name) values('Jack')")

    12. result = cur.execute("insert into students(name age) values(%s %s)" params)

    13. # sql对数据库数据有改变的时候,使用commit()提交,否则不生效

    14. conn.commit()

    15. # 返回数据到python,使用fetchone和fetchall从内存中取数据,取了一个清空一个

    16. cur.execute('select * from students where id between 1 and 5')

    17. result=cur.fetchone()

    18. result=cur.fetchall()

    19. # 最后记得关闭连接

    20. cur.close()

    21. conn.close()

    Redis数据库

    优点是方便,速度快,需要注意的是取出的数据是二进制数据,一般需要转为字符串再操作。

    操作大全: python-redis操作大全

    [python] view plain copy

    1. import redis

    2. # 建立连接

    3. client = redis.Redis(host='lcoalhost' port=6379)

    4. # 操作数据

    5. client.set('nums' [1 2 3 4 5])

    6. result = client.get('name')

    7. # 使用事务(避免失败操作导致数据只操作了一半)

    8. pipe = client.pipeline()

    9. pipe.set('name' 'Jack')

    10. pipe.execute()

    Mongdb数据库

    优点是不在乎数据结构,需要注意的是取出来的时候要写个脚本整理一下。

    [python] view plain copy

    1. import pymongo

    2. # 建立连接 指定数据表

    3. client = pymongo.MongoClient('localhost' 27017)

    4. test1_db = client.test1

    5. sheet_stu = db.stu

    6. # 操作数据

    7. info = {name:'Jack' age:18}

    8. info_id = stu.insert_one(info).inserted_id

    9. cur_list = [cur for cur in stu.find()]

    10. count = stu.count()

    python中五种存储方式(五种使用python储存数据的方式)(1)

    猜您喜欢: