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

相关推荐
容器( ु⁎ᴗ_ᴗ⁎)ु.。oO6 小时前
Magentic-ui 学习
学习
_李小白6 小时前
【OPENGL ES 3.0 学习笔记】延伸阅读:VAO与VBO
笔记·学习·elasticsearch
微露清风7 小时前
系统性学习C++-第九讲-list类
c++·学习·list
摇滚侠7 小时前
Spring Boot3零基础教程,Spring Boot 应用打包成 exe 可执行文件,笔记91 笔记92 笔记93
linux·spring boot·笔记
开开心心就好7 小时前
电子报纸离线保存:一键下载多报PDF工具
网络·笔记·macos·pdf·word·音视频·phpstorm
朝新_7 小时前
【SpringMVC】详解用户登录前后端交互流程:AJAX 异步通信与 Session 机制实战
前端·笔记·spring·ajax·交互·javaee
海边夕阳20067 小时前
【每天一个AI小知识】:什么是零样本学习?
人工智能·经验分享·学习
Thexhy8 小时前
在 CentOS 7 的 Linux 系统中配置 NFS
linux·运维·学习·centos
是Yu欸9 小时前
【博资考5】网安2025
网络·人工智能·经验分享·笔记·网络安全·ai·博资考
报错小能手9 小时前
C++笔记(面向对象)RTTI操作符
开发语言·c++·笔记