1.对json数组和json对象的操作

在python中,一个 Json 对象里面包含了很多信息,那么如何从这些数据中拿到我们想要的呢?
在之前的

python对象与json格式的数据类型转化

一文中已经说明如何操作一个 json对象 ,本文是再补充一个常见的还有处理 Json 数组 的。

python 的 json 模块有两个主要的函数。

1.python 对象转化为 json格式:

json.dumps()

2.将json数据转化为python对象:

json.loads()

import json
Json.dumps()      # 将字典或列表转为josn格式的字符串
Json.loads()		# 将json格式字符串转化为python对象
Json.dump()		# 将字典或列表转为json字符串并且写入到文件中
Json.load()		   # 从文件中读取json格式字符串转化为python对象

总之记住:
(带s的都是对string操作,不带s就是对txt之类的文件操作。)

再不明白的,具例子:

源码:(复制拿去用就行了)

一、第一部分为: Json格式与python对象的相互转换 import json # 普通的json单列表 jsondata = ''' "Uin":0, "UserName":"@c482d142bc698bc3971d9f8c26335c5c", "NickName":"CSDNzoutao", "HeadImgUrl":"https://blog.csdn.net/ITBigGod", "DisplayName":"ZouTao", "ChatRoomId":0, "KeyWord":"che", "EncryChatRoomId":"", "IsOwner":0 myfriend = json.loads(jsondata) # json转化字典对象 print(myfriend) # 转为字典以后,就可以根据key来获取各种字段数值了 name = myfriend.get('NickName') print(name) # json.dumps(name) #将python对象转化为json # 常见的还有 Json 数组-嵌套型 Json_doc=''' "MemberList": [{ "UserName": "CSDNzoutao", "Sex": "男", "Age":10 "UserName": "CSDNzoutao的1号女朋友", "Sex": "女", "Age":10 "UserName": "CSDNzoutao的2号女朋友", "Sex": "不限", "Age":10 myfriends = json.loads(Json_doc) memberList = myfriends.get('MemberList') # 得到list对象-包含字典数据 print(memberList) # 用个 for 循环就能轻而易举的获取数据 for x in memberList: print('遍历list数据:',x)

2.python读写各类txt,csv,html,xls文件的工具类

以上面的那个json格式字符串和python对象为输入数据memberList。

python读写各类txt,csv,html,xls文件的方式:

源码:(复制拿去用就行了)

二、第二部分为: python读写各类txt,csv,html,xls文件的方式 # 保存为txt文件 def output_txt(result): print('数据类型为:',type(result)) # <class 'dict'> with open('result.txt','a',encoding='utf-8') as f: f.write(json.dumps(result,ensure_ascii=False)+'\n') # 将字典或列表转为josn格式的字符串 # 读取txt文件 with open("result.txt", "r", "utf-8") as f: # 为a+模式时,因为为追加模式,指针已经移到文尾,读出来的是一个空字符串。 ftext = f.read() # 一次性读全部成一个字符串 ftextlist = f.readlines() # 一次性读全部,但每一行作为一个子句存入一个列表 fline = f.readline() # 或者只读取1行 print(ftextlist,fline) f.close() # 关闭文件 ## 总结:以后读写文件都使用with open语句,不要再像以前那样用f = open()这种语句了! # 保存为html文件 def output_html(memberList): print(type(memberList)) # <class 'list'> fout = open('result.html', 'w', encoding='utf-8') fout.write('<html>') fout.write('<meta charset=utf-8') fout.write('<body>') fout.write('<table>') # Python 默认编码格式是: Ascii for data in memberList: # result=list,data={} fout.write('<tr>') fout.write('<hr>') fout.write('<td>%s</td>' % data['UserName']) fout.write('<td>%s</td>' % data['Sex']) fout.write('<hr>') fout.write('</tr>') fout.write('</table>') fout.write('</body>') fout.write('</html>') fout.close() # 保存为csv文件 def output_csv(datalist): print(type(datalist)) # <class 'list'> import csv # 准备好存储数据的csv文件 csv_file = open("result.csv", 'w', newline='', encoding='utf-8-sig') # 解决中文乱码问题 writer = csv.writer(csv_file) writer.writerow(['列标题一', '列标题二', '列标题三']) for data in datalist: writer.writerow([data['UserName'], data['Sex'],data['Age']]) csv_file.close() #用reder读取csv文件 with open('result.csv','r') as csvFile: reader = csv.reader(csvFile) for line in reader: print(line) # 保存为xls文件 def output_xls(datalist): print(type(datalist)) # <class 'list'>  import xlwt # #创建工作簿 workbook = xlwt.Workbook(encoding='utf-8') # 创建sheet sheet = workbook.add_sheet(u'sheet1',cell_overwrite_ok=True) head = ['名字', '性别', '年龄'] # 定义表头 # worksheet.write()函数写入第一行列名,参数分别表示行、列、数据、数据格式。 for h in range(len(head)): sheet.write(0, h, head[h]) # 生成第0行标题 # 填入数据(第1行0列开始填数) row = 1 for product in datalist: # 列表里面存了字典 sheet.write(row , 0, product['UserName']) sheet.write(row , 1, product['Sex']) sheet.write(row , 2, product['Age']) row += 1 workbook.save('result.xls') # 读取excel数据 import xlrd data = xlrd.open_workbook('result.xls') # 打开xls文件 table = data.sheets()[0] # 打开第一张表 nrows = table.nrows # 获取表的行数 for i in range(nrows): # 循环逐行打印 if i == 0: # 跳过第一行 continue print(table.row_values(i)) # 示例调用 if __name__ == '__main__': # memberList是一个列表,里面嵌入字典 output_html(memberList) output_csv(memberList) output_xls(memberList) for result in memberList: #print('筛选后的最终数据为:',result) output_txt(result) # 生成器对象一遍历出来就是字典。

生成的各类文件数据:
在这里插入图片描述

提醒!!! 以后在读写txt文件时,都使用with open语句,不要再像以前那样用f = open()这种语句了!

原因:https://www.cnblogs.com/ymjyqsx/p/6554817.html

python对json数组和json对象操作以及读写各类txt,csv,html,xls文件的工具类个人工具类,各取所好。1.对json数组和json对象的操作在python中,一个 Json 对象里面包含了很多信息,那么如何从这些数据中拿到我们想要的呢?在之前的python对象与json格式的数据类型转化一文中已经说明如何操作一个json对象,本文是再补充一个常见的还有处理 Json... json对象 json对象的特征是以大括号开始和结尾,内部元素为key-value的键值对,也可以为空,但是这个空是什么都不写,而不是json数值的空,{}单独的一对大括号,是一个空的json对象,如果写成{null},是不符合json规范的。 key一定是字符串类型的,value可以是上述元素的任意一种,中间有":"隔开,是英文标点的冒
清理数据时会遇到解析json串的情况,如果只是json串,Python中可通过json包中的loads解析成dict,当遇到json数组时,会稍微麻烦一些。 Dataframe格式的数据集中有一列变量,保存的是json数组,需要解析成宽表: 一个ID“小明”,该变量存储的json数组: {‘科目’ : ‘数学’ ‘分数’ : ‘80’ ‘权重’ : ‘0.5’ }, {‘科目’ : ...
Python中JSON的基本使用1. JSON简介2. JSON语法规则3. JSON数据类型4. JSON对象5. JSON数组6. JSON中常用的方法6.1 json.dumps()6.2 json.loads()6.3 json.dump()6.4 json.load()6.5 更多实例7. 参数详解8. JSON反序列化为对象9. 常见的错误9.1 读取多行的JSON文件10. 总结 1. JSON简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,
txt文本文件能存储各式各样数据,结构化的二维表、半结构化的json,非结构化的纯文本。 存储在excel、csv文件中的二维表,都是可以直接存储在txt文件中的。 半结构化的json也可以存储在txt文本文件中。 最常见的是txt文件中存储一群非结构化的数据: 今天只学习:从txt中读出json类型的半结构化数据 import pandas as pd import json f = o...
本文实例讲述了Python常见读写文件操作。分享给大家供大家参考,具体如下: 读写文件 读写文件是最常见的IO操作,python内置了读写文件的函数,用法和c是兼容的. 读写文件前,我们必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以读写文件就是请求操作系统打开一个文件对象(文件描述),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件). 1、读文件 要以读文件的模式打开一个文件对象,使用python内置的open()函数,传入文件名和标识符: f = open(t1.txt,r
def write_info(file_name, file_info): with open('{}.json'.format(file_name), 'w') as fp: json.dump(file_info, fp, ind...
思路就是:字符串是个json格式(或转为json格式),然后str转为字典dict,然后循环遍历按照key来取值。 你的data是个字典 然后item_list是data的Key ,item_list是个数组,这个里面的数组中的每个元素都是一个字典。 因此就是dict多级路径按key取值。
1、运用re、json、jsonpath包解析json思路 (1)re:正则表达式,通过json的形式对症下药,写表达式去解析json; (2)json: 通过json中的json.loads()方法,将str类型转为dict类型,运用python字典的数据结构特点去解析json; (3)jsonpath:对比与json包,jsonpath可以根据路径去解析json,比较适合用来解析json中带“[ ]”的数据。 2、三种方式的json解析案例 #json数据样式,本文采用带[]的数据样式