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

相关推荐
执笔论英雄2 小时前
【大模型学习cuda】入们第一个例子-向量和
学习
wdfk_prog2 小时前
[Linux]学习笔记系列 -- [drivers][input]input
linux·笔记·学习
ouliten3 小时前
cuda编程笔记(36)-- 应用Tensor Core加速矩阵乘法
笔记·cuda
孞㐑¥4 小时前
算法——BFS
开发语言·c++·经验分享·笔记·算法
Gary Studio5 小时前
rk芯片驱动编写
linux·学习
mango_mangojuice5 小时前
Linux学习笔记(make/Makefile)1.23
java·linux·前端·笔记·学习
工程师老罗5 小时前
YOLOv1 核心知识点笔记
笔记·yolo
lingggggaaaa5 小时前
安全工具篇&动态绕过&DumpLsass凭据&Certutil下载&变异替换&打乱源头特征
学习·安全·web安全·免杀对抗
PP东5 小时前
Flowable学习(二)——Flowable概念学习
java·后端·学习·flowable
学电子她就能回来吗5 小时前
深度学习速成:损失函数与反向传播
人工智能·深度学习·学习·计算机视觉·github