python - 如何在python中添加或更新列表
问题描述
我有以下列表:
数据
data_set = [(2, 2021, '2300'),(1, 2021, '2500'),(12, 2020, '2400'),(11, 2020, '1500')]
我想将此列表格式化为以下列表,
预期输出
[
{
"2021-01-01T00": [
{
"2021-02-01T00:00:00": 2300
},
{
"2021-01-01T00:00:00": 2500
}
]
},
{
"2020-01-01T00": [
{
"2020-12-01T00:00:00": 2400
},
{
"2020-11-01T00:00:00": 1500
}
]
}
]
我不知道如何在两个对象中格式化这两年。我很努力,但由于我是 python 新手,所以如果你知道格式化这些数据的方法,请提供帮助。
已编辑
示例代码
result = []
for item in data_set:
result.append({
str(datetime.datetime(item[1], item[0], 1)): float(item[2])
})
使用上面的代码,我得到以下输出,
[
{
"2021-02-01 00:00:00": "2300"
},
{
"2021-01-01 00:00:00": "2500"
},
{
"2020-12-01 00:00:00": "2400"
},
{
"2020-11-01 00:00:00": "1500"
}
]
但我希望每年的记录分开,就像我在上面的EXPECTED OUTPUT中描述的那样。
解决方案
这应该工作!
data_set = [(2, 2021, '2300'),(1, 2021, '2500'),(12, 2020, '2400'),(11, 2020, '1500')]
import datetime
final_dict = dict()
for item in data_set:
year_date = str(datetime.datetime(item[1], 1, 1))
full_date = str(datetime.datetime(item[1], item[0], 1))
current_months_dict = final_dict.get(year_date, list())
current_months_dict.append({full_date: item[2]})
final_dict[year_date] = current_months_dict
final_list = []
for key, value in final_dict.items():
final_list.append({key:value})
print(final_list)
推荐阅读
- javascript - Redux Persist looses data when I redirect to a different page
- java - Nifi stuck at "Launched Apache NiFi with Process ID 41"
- java - Two swagger endpoints inside a spring application
- flutter - 有没有办法让 TextSpan.text 在颤动中可选?
- html - 使用 -webkit-... 创建自定义文本颜色在 Safari 中创建边框
- vba - 如何使用 VBA (2013) 从 Enterprise projectserver 打开 MS Project 文件
- amazon-web-services - AWS QuickSight:计算列中的值
- python - 如何将 '2021-08-24T11:00:19Z' 转换为 datetime 并在 django 中找到它与当前时间之间的天数
- docker - 如何在 Dockerfile 中使用 ARG 和 ENV 的组合来防止不支持的修饰符被替换?
- decimal - Magento 2 / 价格和小计 4 位小数 但增值税和总计 2 位小数