以下是关于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数据解析及日期和时间小结的完整攻略。