Update tech_docs/python/json_python.md

This commit is contained in:
2024-06-26 06:13:46 +00:00
parent 9bf8578129
commit 956e834111

View File

@@ -1,3 +1,100 @@
Sure! Let's focus on the Python implementation of serialization and deserialization, illustrating the process with detailed examples.
### Serialization
Serialization in Python can be done using various libraries, such as `json`, `pickle`, or others. Here, we'll use the `json` library for simplicity.
1. **Convert Data Class to JSON Object:**
First, let's define a simple data class and serialize it to a JSON string.
**Example in Python:**
```python
import json
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
# Create an instance of the class
person = Person("Alice", 30)
# Serialize the object to JSON
person_json = json.dumps(person.__dict__)
print(person_json) # Output: {"name": "Alice", "age": 30}
```
### Deserialization
Deserialization is the reverse process, converting the JSON string back into an object.
1. **Convert JSON Object Back to Data Class:**
**Example in Python:**
```python
# Deserialize the JSON back to a dictionary
person_dict = json.loads(person_json)
# Create a new instance of Person with the deserialized data
deserialized_person = Person(**person_dict)
print(deserialized_person.name) # Output: Alice
print(deserialized_person.age) # Output: 30
```
### Complete Example
Combining serialization and deserialization into a complete example:
```python
import json
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
# Serialization
def serialize(person):
"""Serialize a Person object to a JSON string."""
return json.dumps(person.__dict__)
# Deserialization
def deserialize(person_json):
"""Deserialize a JSON string to a Person object."""
person_dict = json.loads(person_json)
return Person(**person_dict)
# Example usage
if __name__ == "__main__":
# Create an instance of the class
person = Person("Alice", 30)
# Serialize the object to JSON
person_json = serialize(person)
print(f"Serialized JSON: {person_json}")
# Deserialize the JSON back to a Person object
deserialized_person = deserialize(person_json)
print(f"Deserialized Person: Name={deserialized_person.name}, Age={deserialized_person.age}")
```
### Explanation
1. **Serialization:**
- The `serialize` function takes a `Person` object and converts it into a JSON string using `json.dumps()`.
- The `__dict__` attribute of the object is used to get a dictionary representation of the object's attributes.
2. **Deserialization:**
- The `deserialize` function takes a JSON string and converts it back into a `Person` object using `json.loads()`.
- The resulting dictionary is unpacked into the `Person` constructor using the `**` syntax.
This approach provides a clear and concise method for serializing and deserializing objects in Python, ensuring that the object's state can be easily saved and restored.
---
# Comprehensive Guide: JSON 'Querying' in Python
When working with JSON in Python, you're essentially navigating and manipulating a nested structure of dictionaries and lists. While not a formal query language like SQL, Python provides powerful tools to extract, filter, and transform JSON data. Here's an in-depth look at common operations: