<返回更多

Python中的JSON库:完整指南与技巧

2023-07-22  今日头条  云中随心而记
加入收藏

摘要:

Python/ target=_blank class=infotextkey>Python中,JSON库是处理JSON数据的关键工具。本文将带你深入了解Python中的JSON库,包括如何编码和解码JSON数据、访问嵌套数据、处理特殊类型和日期时间,以及自定义编码解码的行为。无论你是初学者还是有经验的开发者,本文都将为你提供一个完整的指南与技巧,助你处理JSON数据更加灵活、高效。

正文:

JSON(JAVAScript Object Notation)是一种常用的数据格式,在Python中处理JSON数据的关键工具是JSON库。下面是关于Python中JSON库的一些重要功能和技巧。

1.编码和解码

import json

data = {'name': 'John', 'age': 30, 'city': 'New York'}
json_str = json.dumps(data)
print(json_str)
# 输出: {"name": "John", "age": 30, "city": "New York"}

json_str = '{"name": "John", "age": 30, "city": "New York"}'
data = json.loads(json_str)
print(data)
# 输出: {'name': 'John', 'age': 30, 'city': 'New York'}

 

2.访问和处理数据

import json

json_str = '{"name": "John", "age": 30, "city": {"name": "New York", "population": 8398748}}'
data = json.loads(json_str)

print(data['name'])
# 输出: John

print(data['city']['name'])
# 输出: New York

json_str = '[{"name": "John", "age": 30}, {"name": "Jane", "age": 25}]'
data = json.loads(json_str)

print(data[0]['name'])
# 输出: John

for item in data:
    print(item['age'])
# 输出: 30
#      25

data = {'name': 'John', 'is_student': True, 'score': None}
json_str = json.dumps(data)
print(json_str)
# 输出: {"name": "John", "is_student": true, "score": null}

 

3.自定义编码与解码

import json

def custom_encoder(obj):
    if isinstance(obj, set):
        return list(obj)

data = {'name': 'John', 'hobbies': {'reading', 'pAInting'}}
json_str = json.dumps(data, default=custom_encoder)
print(json_str)
# 输出: {"name": "John", "hobbies": ["reading", "painting"]}

def custom_decoder(obj):
    if 'name' in obj and 'hobbies' in obj:
        return Person(obj['name'], obj['hobbies'])

class Person:
    def __init__(self, name, hobbies):
        self.name = name
        self.hobbies = hobbies

json_str = '{"name": "John", "hobbies": ["reading", "painting"]}'
data = json.loads(json_str, object_hook=custom_decoder)
print(data.name)
# 输出: John

print(data.hobbies)
# 输出: ["reading", "painting"]

 

4.处理日期和时间

import json
from datetime import datetime

def custom_encoder(obj):
    if isinstance(obj, datetime):
        return obj.strftime('%Y-%m-%d %H:%M:%S')

def custom_decoder(obj):
    if 'timestamp' in obj:
     		return datetime.strptime(obj['timestamp'], '%Y-%m-%d %H:%M:%S')

data = {‘event’: ‘meeting’, ‘timestamp’: datetime.now()}
json_str = json.dumps(data, default=custom_encoder)
print(json_str)

data = json.loads(json_str, object_hook=custom_decoder)
print(data[‘timestamp’])


通过使用这些功能和技巧,你可以在Python中灵活、高效地处理JSON数据。

结论: Python中的JSON库是处理JSON数据的关键工具。

 

如何编码和解码JSON数据、访问和处理数据、处理特殊类型和日期时间,以及自定义编码解码的行为。无论是处理简单的数据还是复杂的嵌套结构,使用JSON库可以轻松地在Python中处理JSON数据。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>