Python二进制方式读取json文本
1、在桌面新建‘json.txt’文件,内容为jsonline格式。
2、打开Python开发工具IDLE,新建‘json.py’文件,并写代码如下:
def lines():
lc = []
with open(r'C:\Users\Administrator\Desktop\json.txt','rb') as f:
for eachline in f:
lc.append(eachline)
return lc
if __name__ == '__main__':
for item in lines():
print (bytes.decode(item))
3、F5运行程序,Shell打印出json文本信息
4、这是一次性读取所有内容,如果文件很大的情况,出于性能考虑要分批读取内容,这样要用到yield生成器,改写lines()函数如下:
def lines():
flag=True
with open(r'C:\Users\Administrator\Desktop\json.txt','rb') as f:
while flag:
da=f.readlines(4)
if da:
yield da
else:
flag=False
注意yield一定要写在with里,这样才能每次从上一次读取的位置继续读取
5、继续写程序入口函数,这里要注意readlines返回的是一个列表,要读取里面的内容,要再做一个循环来遍历,代码如下;
if __name__ == '__main__':
sum = ''
for i in lines():
for j in i:
sum = sum+bytes.decode(j)
print (sum)
sum才是保存的所有文本信息。
6、F5运行程序,Shell打印出json文本信息,这个利用生成器方式读取的方式经常处理较大的文件。