本帖最后由 young_yang 于 2019-12-24 10:26 编辑
做公司的一个项目,准备把json文件转为Dict的格式
读取json文件的时候,print提示报错:TypeError:the Json object must be str, bytes or bytearray,not‘TextIOWrapper’
查了很多资料,才发现原因是自己对于json的四个方法弄混淆了。
json的四个方法:dumps和loads、dump和load
dumps和loads是在内存中转换(python对象和json字符串之间的转换),而dump和load则是对应于文件的处理。
出现这个错误的原因是自己用了loads方法去将json文件转换为python对象,而正确的应该是使用load方法。
截取读取json代码部分:
import json
import colorama
import openpyxl
wb=openpyxl.Workbook()
sheet=wb.active
sheet.title='json'
sheet['A1']='LogTitle'
sheet['B1']='Content'
sheet['C1']=' Snippets'
sheet['D1']='Type'
sheet['E1']='Severity'
colorama.init()
with open('2960s.json','r',encoding='utf-8') as f:
ls = json.load(f) ##将loads换成load即可
filename=ls['subTitle']
messages=ls['messages']
print('\033[1;32;41m***'+filename+'**\033[0m')
--“存在就是合理,合理的也都要存在”-- |