美文网首页
python读取n个文件中json格式内容导入excel

python读取n个文件中json格式内容导入excel

作者: mylemon | 来源:发表于2021-02-10 13:03 被阅读0次

需求:在网上爬取了一些食物的含量信息,每一个食品一个文件,文件内容为json格式,需要将这些食品信息汇总到一个excel中,如下图

食物信息文件 json内容 汇总后的效果

```

代码块放到这里

```

<pre>

代码块放到这里

</pre>

<code>

代码块放到这里

</code>

<code>

import xlrd

import json

import os

from openpyxlimport Workbook

wb= Workbook()

ws= wb.active

cols= []

def json2excel(jsfile, excfile):

    # 读取json数据

    a=1

    if os.path.exists(jsfile):

        # 先用key值写表头

        # print("11111111111111111")

        with open(jsfile, 'r', encoding='utf8')as fp:

            # 先用key值写表头

            line= fp.readline()

if not line:

                print("没有内容")

else:

                # 每一行转换成字典类型

                jsdata= json.loads(line)

# 用key值做标题

                # print("+++++++++++++++++++++++++++++"+str(cols))

# print(type(cols))

# print(cols is None)

# print(len(cols))

                if len(cols)== 0 :

                    cols.append("code")

cols.append("name")

for kin jsdata.keys():

                        if k=="ingredient":

                            print("进入key读取")

ingredient= jsdata.get("ingredient")

# print(ingredient.keys())

                            for cin ingredient.keys():

                                # print("==22==2=222----------------"+c)

                                cols.append(c)

# cols.append("name")

                    ws.append(cols)# 标题

                # print("cols======"+str(cols))

# print()

        # 写值

        with open(jsfile, 'r', encoding='utf8')as fp:

            # 循环写值

            while True:

                print('正在写入的行数%s:' % a)

line= fp.readline()

# print(line)

                if not line:

                    break

                # 转换为python对象

                jsdata= json.loads(line)

rowdata= []

rowdata.append(jsdata.get("code"))

rowdata.append(jsdata.get("name"))

for colin cols:

                    # 获取每一行key值对应的value值

                    ingredient= jsdata.get("ingredient")

# print("=="+str(ingredient))

                    if ingredient.get(col)is not None:

                        rowdata.append(ingredient.get(col))

# print("value===="+str(ingredient.get(col)))

# rowdata.append(jsdata.get("name"))

# rowdata.append(jsdata.get("code"))

# print(jsdata.get("name"))

# print("-------------------"+str(rowdata))

                a+= 1

                ws.append(rowdata)# 写行

                # ws.append(cols) # 标题

    print('保存中')

wb.save(excfile)# 保存

if __name__== '__main__':

    s= 1

    # path = "D:/PycharmProjects/jsonExcel/date/"

    path= "E:/work/data2/"

    files= os.listdir(path)

for fin files:

        filelist= os.path.isfile(path+ '/' + f)

# print(f)

        filepath= path+ f

print(filepath)

# excfile = "./222-1.xlsx"

        excfile= "./333.xlsx"

        json2excel(filepath, excfile)

# jsfile = "./_AGIAaqianyachunganlanyou.json"

# excfile = "./111.xlsx"

# json2excel(jsfile, excfile)

</code>

相关文章

网友评论

      本文标题:python读取n个文件中json格式内容导入excel

      本文链接:https://www.haomeiwen.com/subject/pvxkxltx.html