importjsonimportcsvfromdatetimeimportdatetimepath_f="followers.txt"path_fd="followers_detail.txt"output="followers_info.csv"f_list=[]fd_list=[]output_list=[]forp,lin[[path_f,f_list],[path_fd,fd_list]]:withopen(p,'r',encoding='utf-8')asf:forlineinf:line=line.strip()ifnotline:continuetry:data=json.loads(line)["data"]l.append(data)exceptjson.JSONDecodeErrorase:print(e)f_len=len(f_list)if(f_len!=len(fd_list)):printf("err: len not matched")print(f"{f_len} data loaded")fori,(f,fd)inenumerate(zip(f_list,fd_list)):if(f["items"][0]["id"]!=fd["user"]["id"]):print(f"[{i}] err: id not matched")breakif(f["items"][0]["nickname"]!=fd["user"]["nickname"]):print(f"[{i}] err: nickname not matched")breakif(i==0):follow_datetime="N/A"output_list.append({"id":fd["user"]["id"],"nickname":fd["user"]["nickname"],"followeeCount":fd["user"]["followeeCount"],"followerCount":fd["user"]["followerCount"],"isPremium":fd["user"]["isPremium"],"icon":fd["user"]["icons"]["large"],"follow_datetime":follow_datetime})print(f"[{i}] ok")cursor=f["summary"]["cursor"]follow_datetime=Noneifcursor=="cursorEnd"elsestr(datetime.strptime(cursor.split("_")[0],"%Y%m%d%H%M%S"))withopen(output,mode='w',newline='',encoding='utf-8-sig')asf:writer=csv.DictWriter(f,fieldnames=output_list[0].keys())writer.writeheader()writer.writerows(output_list)
Warning
LINK
You are about to visit a link which has been flagged with the above content warnings. Do you wish to continue?