ToB企服应用市场:ToB评测及商务社交产业平台
标题:
python 解读JSON文件,一文搞懂!
[打印本页]
作者:
铁佛
时间:
2024-11-24 03:39
标题:
python 解读JSON文件,一文搞懂!
一、JSON格式详解
全部 JSON 数据需要包裹在一个花括号中。
{
"sites": [
{ "name":"maybe" , "url":"www.maybe.com" },
{ "name":"google" , "url":"www.google.com" }
]
}
复制代码
Object
(对象):键/值对(
"key":"value"
)的集合。集合使用花括号{ }界说。多个键/值对之间使用逗号
,
分隔,比方
{"name":"pink","url":"unknown"}
。
Array
(数组):值的有序集合,使用方括号
[ ]
界说,数组中每个值之间使用逗号
,
进行分隔。
1. 基本语法
值可以是数字、字符串、布尔值、数组、对象、null;
键必须是唯一的,不能重复;
不可以使用八进制或十六进制体现数字。
不支持注释
可以嵌套
2. 数据类型
number
:JSON 中不区分整型和浮点型。此外,JSON 中不能使用八进制和十六进制体现数字,但可以使用 e 或 E 来体现 10 的指数。
{
"number_1" : 20,
"number_2" : -21.5,
"number_3" : 1.0E+1
}
复制代码
value
:null 和 true/false
object
:JSON 中,对象由花括号
{ }
以及其中的若干键/值对构成,一个对象中可以包罗零个或多个键/值对,每个键/值对之间需要使用逗号
,
分隔.
{
"author": {
"name": "C",
"description": "C语言"
}
}
复制代码
array
:JSON 中,数组由方括号
[ ]
和其中的若干值构成,值可以是 JSON 中支持的恣意类型,每个值之间使用逗号
,
进行分隔。
{
"course" : [
"JSON",
"CSS",
{
"ok" : "well",
"how" : "fine"
},
[
3.1,
fasle
],
null
]
}
复制代码
二、python
1. 数据文件(data.json)
{
"employee": {
"name": "John Doe",
"age": 35,
"department": {
"name": "Engineering",
"location": "Building A"
}
}
}
复制代码
2.原生python剖析
需要导入JSON包进行文件剖析。
import json
# 读取 JSON 数据
with open('data/data.json', 'r') as f:
json_data = f.read()
# 解析 JSON 数据
data = json.loads(json_data)
print(type(data)) # dict
for key, value in data.items(): # 遍历第一层
print(f"Key: {key}, Value: {value}")
# 如果值是字典,继续遍历第二层
if isinstance(value, dict):
for sub_key, sub_value in value.items(): # 遍历第二层
print(f" Sub-key: {sub_key}, Sub-value: {sub_value}")
# 如果第二层的值还是字典,进一步处理
if isinstance(sub_value, dict):
for deep_key, deep_value in sub_value.items():
print(f" Deep-key: {deep_key}, Deep-value: {deep_value}")
复制代码
3. pandas
需要导入pandas包进行文件剖析。
import pandas as pd
path = 'data/data.json'
# 1. 打开并读取 JSON 文件
df = pd.read_json(path)
print(type(df)) # DataFrame
# 2. 按行解析 JSON 数据
x = df.to_dict(orient='records')
print(type(x)) # list ,其中每个元素是一个字典
# 3. 按列解析 JSON 数据
y = df.to_dict(orient='list')
print(type(y)) # dict 类型,其中每个键的值是列表
# 4. 扁平化嵌套的 JSON 数据
x_normalized = pd.json_normalize(x)
print(x_normalized)
# 5. 将 DataFrame 转换为 JSON 格式
json_data = df.to_json()
print(json_data)
# 6. 将 DataFrame 写入 JSON 文件
df.to_json('output.json')
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4