当前位置: 代码网 > it编程>前端脚本>Python > 一文带你搞懂Python如何解读JSON文件

一文带你搞懂Python如何解读JSON文件

2026年03月31日 Python 我要评论
一、json格式详解所有 json 数据需要包裹在一个花括号中。{ "sites": [ { "name":"maybe" , "url":"www.maybe.com" }, {

一、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')

到此这篇关于一文带你搞懂python如何解读json文件的文章就介绍到这了,更多相关python解读json文件内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com