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