python

Posted ~小疯子~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python相关的知识,希望对你有一定的参考价值。

python读取jsonlines文件

1. 读取jsonlines文件

ps:
这里为了拿到下面的album_Id后面的值,需要读取jsonlines文件,数据是在客户端请求接口后返回的数据,并存成了jsonlines文件,需要验证返回的数据是否符合结果,解析文件,json lines文件是一种便于存储结构化数据的格式,可以一次处理一条记录。可以用作日志文件或者其他。每条json数据之间存在一个"\\n"分隔符, 需要解析其中的文件,我按照网上的方法读取jsonlines文件时老出现问题,报错,简单粗暴的使用了以下的方法。

文件格式以及内容:

import jsonlines
import json
import re
ll = []
with open("./data/result.jsonline", "r+", encoding="utf8") as f:
    for i in f.readlines():
        ll.append(i)
print(ll)
# ll返回一个列表,列表中是字符串,将list转化为列表,然后提取其中的album_id数据,这里使用了正则表达式
ss = pd.DataFrame(ll)
ss[1] = ss[0].apply(lambda x:re.findall(r'\\b\\d1,\\b',x)[:10])
[len(i) for  i in ss[1]]
ss[3] = ss[1].apply(lambda x: len(set(x)))
ss.head()

ss结果:

拿到数据之后对返回值合并:

from itertools import chain
# 拿到所有album_id,也就是ss[1]
dggg = ss[1].to_list()
c=list(chain(*dggg))
# c就是所有的album_id,是一个大列表
ffc = set(c)

以上是关于python的主要内容,如果未能解决你的问题,请参考以下文章

python天坑------可变对象

python之循环

python 爬虫

编码 解码 python

python报错UnicodeDecodeError:

python-列表-元素去重