importjsonimportcsvfromdatetimeimportdatetimepath_f="followers.txt"path_fd="followers_detail.txt"output="followers_info.csv"f_list=[]fd_list=[]output_list=[]withopen(path_f,'r',encoding='utf-8')asf:f_list=[json.loads(line)["data"]forlineinf]withopen(path_fd,'r',encoding='utf-8')asf:fd_list=[json.loads(line)["state"]["userDetails"]["userDetails"]forlineinf]f_len=len(f_list)if(f_len!=len(fd_list)):print("err: len not matched")print(f"{f_len} data loaded")follow_datetime=Nonefori,(f,fd)inenumerate(zip(f_list,fd_list)):if(f["items"][0]["id"]!=fd["user"]["id"]):print(f"[{i}] err: id not matched")breakoutput_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?