python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python读取json文件

Python如何读取json文件

作者:晚风吹儿

这篇文章主要介绍了Python如何读取json文件问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Python读取json文件

JSON文件

准备一个json文档数据,把对应的参数添加至此json文件下,通过python去获取对应的数据

代码如下(示例):

{
          "item":
                  [
                    {
                      "requests":
                      {
                        "url": "",
                        "body":
                        {
                          
                          "isWindow": 0,
                          "logoUrl": "",
                          "name": "new2",
                          "router": "",
                          "sort": 0,
                          "systemId": 0,
                          "useType": 0
                        }
                      },
                      "response":
                              [
                                {"code":"200"}
                              ]
                    },
                    {
                      "requests":
                      {
                        "url": "",
                        "body":
                        {
                          
                          "isWindow": 0,
                          "logoUrl": "",
                          "name": "new6",
                          "router": "",
                          "sort": 0,
                          "systemId": 0,
                          "useType": 1
                        }
                      },
                      "response":
                              [
                                {"code":"200"}
                              ]
                    },
                    {
                      "requests":
                      {
                        "url": "",
                        "body":
                        {
                         
                          "isWindow": 0,
                          "logoUrl": "",
                          "name": "new8",
                          "router": "",
                          "sort": 0,
                          "systemId": 0,
                          "useType": 0
                        }
                      },
                      "response":
                              [
                                {"code":"200"}
                              ]
                    }
                  ]
}

读取JSON数据

代码如下(示例):

import json
import pprint

class Read():
    def read_json(self):
        return json.load(open('app_json.json','r',encoding="utf-8"))['item']

read = Read()
# print(read)
pprint.pprint(read.read_json())


输出结果:
[{'requests': {'body': {
                        'isWindow': 0,
                        'logoUrl': '',
                        'name': 'new2',
                        'router': '',
                        'sort': 0,
                        'systemId': 0,
                        'useType': 0},
               'url': ''},
  'response': [{'code': '200'}]},
 {'requests': {'body': {
                        'isWindow': 0,
                        'logoUrl': '',
                        'name': 'new6',
                        'router': '',
                        'sort': 0,
                        'systemId': 0,
                        'useType': 1},
               'url': ''},
  'response': [{'code': '200'}]},
 {'requests': {'body': {
                        'isWindow': 0,
                        'logoUrl': '',
                        'name': 'new8',
                        'router': '',
                        'sort': 0,
                        'systemId': 0,
                        'useType': 0},
               'url': ''},
  'response': [{'code': '200'}]}]

Python解析json数据并保存为csv文件

首先导入两个包:

import json
import pandas as pd

打开json 文件并读取:

with open('2.json', encoding='utf-8') as f:
    line = f.readline()
    d = json.loads(line)
    f.close()

读取的json数据会以字典的形势保存,按照字典的读取方式获取自己想要的数据:

datas_x = []
datas_y = []

for dss in d:
    datas_x.append(float(dss["pos"]["x"]))
    datas_y.append(float(dss["pos"]["z"]))

将数据保存到列表中,然后创建pandas的DataFrame,DataFrame是由多种类型的列构成的二维标签数据结构。

path_x = pd.Series(datas_x)
path_y = pd.Series(datas_y)

path_df = pd.DataFrame()
path_df['pathx'] = path_x
path_df['pathy'] = path_y

最后将数据保存到csv中。

filepath = "E:\\python\\python\\2021\\202104\\0409\\path_data.csv"
path_df.to_csv(filepath, index=False, header=False)

完整代码:

import json
import pandas as pd

filepath = "E:\\python\\python\\2021\\202104\\0409\\path_data.csv"

with open('2.json', encoding='utf-8') as f:
    line = f.readline()
    d = json.loads(line)
    f.close()

datas_x = []
datas_y = []

for dss in d:
    datas_x.append(float(dss["pos"]["x"]))
    datas_y.append(float(dss["pos"]["z"]))

path_x = pd.Series(datas_x)
path_y = pd.Series(datas_y)

path_df = pd.DataFrame()
path_df['pathx'] = path_x
path_df['pathy'] = path_y

path_df.to_csv(filepath, index=False, header=False)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文