【Python 学习笔记】json

How does python work with json?

1. Loading JSON Data

If you have JSON data as a string or in a file, you can load it into a Python dictionary (or list, if the JSON data is an array) using json.loads() (for strings) or json.load() (for files).

python 复制代码
import json

# From a JSON string
json_data = '{"name": "Alice", "age": 25, "city": "New York"}'
data = json.loads(json_data)
print(data)  # Output: {'name': 'Alice', 'age': 25, 'city': 'New York'}

# From a JSON file
with open('data.json') as file:
    data = json.load(file)
    print(data)

To convert a Python dictionary (or other JSON-serializable Python objects) into a JSON string, you can use json.dumps(). For writing to a file, use json.dump().

python 复制代码
# Convert Python dict to JSON string
python_data = {"name": "Alice", "age": 25, "city": "New York"}
json_string = json.dumps(python_data)
print(json_string)  # Output: {"name": "Alice", "age": 25, "city": "New York"}

# Write to a JSON file
with open('output.json', 'w') as file:
    json.dump(python_data, file)

3. Handling Nested JSON

If the JSON data has nested objects, you can access them by chaining dictionary keys or list indices.

python 复制代码
nested_json = '{"person": {"name": "Alice", "age": 25}, "city": "New York"}'
data = json.loads(nested_json)
print(data['person']['name'])  # Output: Alice

4. Formatting Options

json.dumps() has optional parameters for pretty-printing, sorting keys, and customizing output format.

python 复制代码
# Pretty-print JSON
formatted_json = json.dumps(python_data, indent=4, sort_keys=True)
print(formatted_json)

Why Use sort_keys?

  • Readability: It makes it easier to locate keys in large JSON outputs.
  • Consistency: Sorted keys provide consistent output, which is useful when comparing JSON strings.
  • Debugging: Having a predictable order can simplify debugging by avoiding unnecessary differences due to key ordering.

example for JSON data is an array?

Certainly! JSON data can be structured as an array, where the top-level element is a list (array) of JSON objects, rather than a single JSON object. This is common when representing collections of data, like a list of users, products, or other similar records.

python 复制代码
[
    {
        "id": 1,
        "name": "Alice",
        "age": 25,
        "city": "New York"
    },
    {
        "id": 2,
        "name": "Bob",
        "age": 30,
        "city": "Chicago"
    },
    {
        "id": 3,
        "name": "Charlie",
        "age": 35,
        "city": "San Francisco"
    }
]

How to Work with JSON Arrays in Python

You can load this JSON array into Python and iterate over the list of dictionaries

python 复制代码
import json

# JSON array as a string
json_array = '''
[
    {"id": 1, "name": "Alice", "age": 25, "city": "New York"},
    {"id": 2, "name": "Bob", "age": 30, "city": "Chicago"},
    {"id": 3, "name": "Charlie", "age": 35, "city": "San Francisco"}
]
'''

# Parse JSON array into Python list
data = json.loads(json_array)

# Accessing elements
for person in data:
    print(f"Name: {person['name']}, Age: {person['age']}, City: {person['city']}")
python 复制代码
Name: Alice, Age: 25, City: New York
Name: Bob, Age: 30, City: Chicago
Name: Charlie, Age: 35, City: San Francisco

Key Points

  • JSON arrays are loaded as Python lists.
  • Each item in the array is typically a JSON object (dictionary in Python).
  • You can iterate through the list and access each dictionary by its keys.

how do you load this json_array to a table?

python 复制代码
import json
import pandas as pd

# JSON array as a string
json_array = '''
[
    {"id": 1, "name": "Alice", "age": 25, "city": "New York"},
    {"id": 2, "name": "Bob", "age": 30, "city": "Chicago"},
    {"id": 3, "name": "Charlie", "age": 35, "city": "San Francisco"}
]
'''

# Load JSON data from file
with open('data.json') as file:
    data = json.load(file)

# Parse JSON array into a Python list
data = json.loads(json_array)
python 复制代码
   id     name  age           city
0   1    Alice   25       New York
1   2      Bob   30        Chicago
2   3  Charlie   35  San Francisco

Summary

  • Use json.loads() to parse a JSON array from a string or json.load() from a file.
  • Convert the parsed JSON data to a DataFrame using pd.DataFrame(data).
  • Each JSON object in the array becomes a row in the DataFrame.

"Answer Generated by OpenAI's ChatGPT"

相关推荐
HugoStudio_SWAN21 分钟前
【擦除重绘】C++ 控制台动画:弹跳 Logo DVD 屏保效果
开发语言·c++·学习·程序人生
sakiko_2 小时前
Swift学习笔记42-SwiftUI的属性包装器(讲解+面试)
笔记·学习·ios·swiftui·swift
自小吃多2 小时前
器件移动、旋转、镜像、对齐、等间距操作笔记
笔记·嵌入式硬件
存在morning3 小时前
【Paimon 学习笔记 三】工作流程:Paimon 的批写、流写、批读与流读
笔记·学习
老当益壮梁奶奶5 小时前
Linux软件编程学习笔记(八):进程间通信详解(1)
linux·c语言·笔记·学习·算法
weixin_466068116 小时前
《十分钟冥想》精读笔记(上):每天10分钟,给大脑做一次“系统减负”
笔记
凯尔萨厮7 小时前
Java学习笔记十(注解)
java·笔记·学习
JoannaJuanCV7 小时前
VLM学习-SFT(监督微调)
深度学习·学习·机器学习·大模型·视觉大模型·vlm·视觉编码器
程序员大雄学编程8 小时前
微积分43. 无穷积分入门:从概念到Python实战可视化
开发语言·python·学习·微积分
一条破秋裤8 小时前
STM32 学习笔记:GPIO 输出实验——LED 闪烁、流水灯与蜂鸣器
笔记·stm32·学习