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文件

转换为csv文件后,我们就可以直接用excel打开拉图表了



[python]  view plain  copy


1. import csv  
2. # 打开文件  
3. with open(filename, 'w') as f:  
4. # 构造写入器  
5. '1','2','3') # 填写三格  
6. '','','3')   # 填写一格,前两格空起来  
7. '1','')      # 填写第一格,后面无论多少格都空起来  
8. # 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. # 建立连接 注意数据库写入数据时数据的编码  
8. conn = MySQLdb.connect(host='localhost', port=3306, db='test',  
9. user='root', passwd='', charset='utf8')  
10.   
11. # 新建游标 游标操作sql语句  
12. cur = conn.cursor()  
13. result = cur.execute("insert into students(name) values('Jack')")  
14. result = cur.execute("insert into students(name,age) values(%s,%s)", params)  
15.   
16. # sql对数据库数据有改变的时候,使用commit()提交,否则不生效  
17. conn.commit()  
18.   
19. # 返回数据到python,使用fetchone和fetchall从内存中取数据,取了一个清空一个  
20. cur.execute('select * from students where id between 1 and 5')  
21. result=cur.fetchone()  
22. result=cur.fetchall()  
23.   
24. # 最后记得关闭连接  
25. cur.close()  
26. conn.close()



Redis数据库

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

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



[python]  view plain  copy


1. import redis  
2.   
3. # 建立连接  
4. client = redis.Redis(host='lcoalhost', port=6379)  
5.   
6. # 操作数据  
7. client.set('nums', [1,2,3,4,5])  
8. result = client.get('name')  
9.   
10. # 使用事务(避免失败操作导致数据只操作了一半)  
11. pipe = client.pipeline()  
12. pipe.set('name', 'Jack')  
13. pipe.execute()




Mongdb数据库

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



[python]  view plain  copy


1. import pymongo  
2.   
3. # 建立连接 指定数据表  
4. client = pymongo.MongoClient('localhost', 27017)  
5. test1_db = client.test1  
6. sheet_stu = db.stu  
7.   
8. # 操作数据  
9. info = {name:'Jack',age:18}  
10. info_id = stu.insert_one(info).inserted_id  
11. cur_list = [cur for cur in stu.find()]  
12. count = stu.count()




在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文件

转换为csv文件后,我们就可以直接用excel打开拉图表了



[python]  view plain  copy

1. import csv  
2. # 打开文件  
3. with open(filename, 'w') as f:  
4. # 构造写入器  
5. '1','2','3') # 填写三格  
6. '','','3')   # 填写一格,前两格空起来  
7. '1','')      # 填写第一格,后面无论多少格都空起来  
8. # 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. # 建立连接 注意数据库写入数据时数据的编码  
8. conn = MySQLdb.connect(host='localhost', port=3306, db='test',  
9. user='root', passwd='', charset='utf8')  
10.   
11. # 新建游标 游标操作sql语句  
12. cur = conn.cursor()  
13. result = cur.execute("insert into students(name) values('Jack')")  
14. result = cur.execute("insert into students(name,age) values(%s,%s)", params)  
15.   
16. # sql对数据库数据有改变的时候,使用commit()提交,否则不生效  
17. conn.commit()  
18.   
19. # 返回数据到python,使用fetchone和fetchall从内存中取数据,取了一个清空一个  
20. cur.execute('select * from students where id between 1 and 5')  
21. result=cur.fetchone()  
22. result=cur.fetchall()  
23.   
24. # 最后记得关闭连接  
25. cur.close()  
26. conn.close()



Redis数据库

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

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



[python]  view plain  copy


1. import redis  
2.   
3. # 建立连接  
4. client = redis.Redis(host='lcoalhost', port=6379)  
5.   
6. # 操作数据  
7. client.set('nums', [1,2,3,4,5])  
8. result = client.get('name')  
9.   
10. # 使用事务(避免失败操作导致数据只操作了一半)  
11. pipe = client.pipeline()  
12. pipe.set('name', 'Jack')  
13. pipe.execute()


Mongdb数据库

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



[python]  view plain  copy


1. import pymongo  
2.   
3. # 建立连接 指定数据表  
4. client = pymongo.MongoClient('localhost', 27017)  
5. test1_db = client.test1  
6. sheet_stu = db.stu  
7.   
8. # 操作数据  
9. info = {name:'Jack',age:18}  
10. info_id = stu.insert_one(info).inserted_id  
11. cur_list = [cur for cur in stu.find()]  
12. count = stu.count()

在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文件

转换为csv文件后,我们就可以直接用excel打开拉图表了



[python]  view plain  copy




    1. import csv  
    2. # 打开文件  
    3. with open(filename, 'w') as f:  
    4. # 构造写入器  
    5. '1','2','3') # 填写三格  
    6. '','','3')   # 填写一格,前两格空起来  
    7. '1','')      # 填写第一格,后面无论多少格都空起来  
    8. # 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. # 建立连接 注意数据库写入数据时数据的编码  
      8. conn = MySQLdb.connect(host='localhost', port=3306, db='test',  
      9. user='root', passwd='', charset='utf8')  
      10.   
      11. # 新建游标 游标操作sql语句  
      12. cur = conn.cursor()  
      13. result = cur.execute("insert into students(name) values('Jack')")  
      14. result = cur.execute("insert into students(name,age) values(%s,%s)", params)  
      15.   
      16. # sql对数据库数据有改变的时候,使用commit()提交,否则不生效  
      17. conn.commit()  
      18.   
      19. # 返回数据到python,使用fetchone和fetchall从内存中取数据,取了一个清空一个  
      20. cur.execute('select * from students where id between 1 and 5')  
      21. result=cur.fetchone()  
      22. result=cur.fetchall()  
      23.   
      24. # 最后记得关闭连接  
      25. cur.close()  
      26. conn.close()




      Redis数据库

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

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



      [python]  view plain  copy


      1. import redis  
      2.   
      3. # 建立连接  
      4. client = redis.Redis(host='lcoalhost', port=6379)  
      5.   
      6. # 操作数据  
      7. client.set('nums', [1,2,3,4,5])  
      8. result = client.get('name')  
      9.   
      10. # 使用事务(避免失败操作导致数据只操作了一半)  
      11. pipe = client.pipeline()  
      12. pipe.set('name', 'Jack')  
      13. pipe.execute()




      Mongdb数据库

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



      [python]  view plain  copy


      1. import pymongo  
      2.   
      3. # 建立连接 指定数据表  
      4. client = pymongo.MongoClient('localhost', 27017)  
      5. test1_db = client.test1  
      6. sheet_stu = db.stu  
      7.   
      8. # 操作数据  
      9. info = {name:'Jack',age:18}  
      10. info_id = stu.insert_one(info).inserted_id  
      11. cur_list = [cur for cur in stu.find()]  
      12. count = stu.count()