【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"

相关推荐
Hello_Embed4 小时前
STM32HAL 快速入门(二十):UART 中断改进 —— 环形缓冲区解决数据丢失
笔记·stm32·单片机·学习·嵌入式软件
咸甜适中5 小时前
rust语言 (1.88) 学习笔记:客户端和服务器端同在一个项目中
笔记·学习·rust
Grassto5 小时前
RAG 从入门到放弃?丐版 demo 实战笔记(go+python)
笔记
Magnetic_h6 小时前
【iOS】设计模式复习
笔记·学习·ios·设计模式·objective-c·cocoa
研梦非凡6 小时前
ICCV 2025|从粗到细:用于高效3D高斯溅射的可学习离散小波变换
人工智能·深度学习·学习·3d
limengshi1383927 小时前
机器学习面试:请介绍几种常用的学习率衰减方式
人工智能·学习·机器学习
知识分享小能手8 小时前
React学习教程,从入门到精通,React 组件核心语法知识点详解(类组件体系)(19)
前端·javascript·vue.js·学习·react.js·react·anti-design-vue
周周记笔记9 小时前
学习笔记:第一个Python程序
笔记·学习
丑小鸭是白天鹅9 小时前
Kotlin协程详细笔记之切线程和挂起函数
开发语言·笔记·kotlin
潘达斯奈基~9 小时前
《大数据之路1》笔记2:数据模型
大数据·笔记