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)
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。