将json数据处理为csv数据【python版本】

将json数据处理为csv数据【python版本】

  • 我是一个差点被CSDN驱逐的2年码客
    • 效果一览
    • 导入相应的包
    • 初始化一个列表,并读取json文件
    • 写入csv文件
    • 愿与诸君共勉,欢迎大家在下方留言评论

我是一个差点被CSDN驱逐的2年码客

因为两年不发贴子了!
这里从csdn上找了好多方法,阿西吧!就很nice,最近老师要搞一件大事情,航空数据的实时爬取和可视化,好家伙,爬虫的框架就是老一套,不过反扒机制确实可以说道说道,这个等我活过来一定给大家分享,现在说正题,好了,废话到此为止,上干货!

效果一览

目标数据样式如下:
将json数据处理为csv数据【python版本】_第1张图片
处理后的结果:

将json数据处理为csv数据【python版本】_第2张图片

导入相应的包

import json
import csv
import re

初始化一个列表,并读取json文件

#初始化js数据存储列表
new_list = []
#更改json文件
with open("2021-01-02-flight.json", "r", encoding="utf8") as f:
    new_data = f.read()
    data_list = re.split('},', new_data)
    #用于分割json文件中不合规范的多json数据
    # 分割后记得补充完整{
     }
    for i in data_list:
        add = i + '}'
        new_list.append(add)

写入csv文件

fs = open('2021-01-02-flight.csv', 'w',newline="",encoding='utf-8')
csv_write = csv.writer(fs)
#对于airflight的json文件数据处理
name=['airAge', 'airCName', 'airCtry', 'airIATA', 'aircraftNumber', 'airname', 'atype', 'atypename', 'dstTinezone', 'fdst', 'fdstAptCcity', 'fdstAptCity', 'fdstAptCname', 'fdstAptICAO', 'fdstAptLat', 'fdstAptLon', 'fdstAptName', 'fnum', 'fnum3', 'forg', 'forgAptCcity', 'forgAptCity', 'forgAptCname', 'forgAptICAO', 'forgAptLat', 'forgAptLon', 'forgAptName', 'ftype', 'icaoId', 'id', 'imageId', 'imageUrl', 'orgTinezone', 'scheduledArrtime', 'scheduledDeptime', 'actualDeptime', 'actualArrtime']
csv_write.writerow(name)
for i in range(len(new_list)):
    if (i==len(new_list)-1):
        break
    else:
        example_data = json.loads(new_list[i])
        #这里有必要说一下,json.loads用于处理者中字符串数据
        #json.load适用于打开字符串转化为字典,划重点(标准的json文件,不然你就得要用readline去读喽!有一丢丢小麻烦!)
        write_data=[]
        for j in name:
            try:
                example_data[j]#如果目标json数据里面没有该索引下的数据,用‘#’填充
            except KeyError:
                #print('没有元素信息')
                write_data.append('#')
            else:
                if(example_data[j] is None):
                    write_data.append('#')
                #print(example_data[j])
                else:
                    write_data.append(example_data[j])
        print(write_data)
        csv_write.writerow(write_data)
        #将每条处理后的js数据逐行写入

项目部分展示【可视化大屏】:

愿与诸君共勉,欢迎大家在下方留言评论

这个项目我会跟下去,如果这个我能仅靠自己做完,一定会给大家在Github上开源的,欢迎大家一起学习,一起进步

你可能感兴趣的:(数据处理,python)