Python3 JSON 数据解析及日期和时间小结

  • Post category:Python

以下是关于Python3 JSON数据解析及日期和时间小结的完整攻略。

一、JSON数据解析

1.1 什么是JSON?

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它基于JavaScript语言的一个子集,所以易于理解和使用。

1.2 JSON in Python

Python提供了json模块来解析JSON数据。首先,需要引入json模块,然后使用loads()方法将JSON字符串转换为Python数据类型。

import json

json_str = '{"name":"Alice", "age": 25, "city":"New York"}'
json_dict = json.loads(json_str)

print("name:", json_dict["name"])
print("age:", json_dict["age"])
print("city:", json_dict["city"])

输出:

name: Alice
age: 25
city: New York

1.3 JSON to Python

如果你有一个JSON文件,并想将其转换为Python对象,可以使用json.load()方法。

import json

# JSON数据写入文件
json_str = '{"name":"Bob", "age": 30, "city":"Los Angeles"}'
with open("data.json", "w") as json_file:
    json_file.write(json_str)

# 从文件中读取JSON数据
with open("data.json", "r") as json_file:
    json_dict = json.load(json_file)

print("name:", json_dict["name"])
print("age:", json_dict["age"])
print("city:", json_dict["city"])

输出:

name: Bob
age: 30
city: Los Angeles

二、日期和时间

Python有一个内置的datetime模块,可以进行日期和时间的处理。在进行日期和时间处理时,我们通常需要掌握以下类型:

  • date:表示日期,格式为(year, month, day)。
  • time:表示时间,格式为(hour, minute, second, microsecond)。
  • datetime:日期和时间的组合。
  • timedelta:两个日期、时间或日期时间之间的差值。

2.1 获取当前日期和时间

可以使用datetime.now()方法获取当前日期和时间。

import datetime

now = datetime.datetime.now()
print("当前时间:", now)

输出:

当前时间: 2021-11-23 21:36:02.491634

2.2 格式化日期和时间

可以使用strftime()方法将日期和时间格式化为字符串。

import datetime

now = datetime.datetime.now()
print("当前时间格式化后为:", now.strftime("%Y-%m-%d %H:%M:%S"))

输出:

当前时间格式化后为: 2021-11-23 21:36:02

2.3 时间戳

时间戳是指从1970年1月1日 00:00:00 UTC到现在的秒数。Python的time()方法可以获得当前时间的时间戳。

import time

timestamp = time.time()
print("当前时间戳为:", timestamp)

输出:

当前时间戳为: 1637699782.5525947

2.4 日期计算

可以使用timedelta类执行日期和时间的计算。

import datetime

now = datetime.datetime.now()
delta = datetime.timedelta(days=3)  # 增加3天

three_days_later = now + delta
print("三天后的日期为:", three_days_later.strftime("%Y-%m-%d %H:%M:%S"))

输出:

三天后的日期为: 2021-11-26 21:36:02

2.5 时区

Python标准库不支持时区设置,但可以使用第三方库pytz进行时区设置。

import datetime
import pytz

utc = pytz.utc
shanghai = pytz.timezone('Asia/Shanghai')

utc_now = datetime.datetime.utcnow().replace(tzinfo=utc)
shanghai_now = utc_now.astimezone(shanghai)

print("UTC时间:", utc_now.strftime("%Y-%m-%d %H:%M:%S %Z"))
print("上海时间:", shanghai_now.strftime("%Y-%m-%d %H:%M:%S %Z"))

输出:

UTC时间: 2021-11-23 13:36:02 UTC
上海时间: 2021-11-23 21:36:02 CST

以上就是Python3 JSON数据解析及日期和时间小结的完整攻略。