python 如何将时间从字典列表转换为日期时间格式

krugob8w  于 2022-10-30  发布在  Python
关注(0)|答案(2)|浏览(240)

我需要将字典列表中的时间转换为日期时间格式,字典列表是我从json文件中创建的,json文件如下所示

{"name": "Thomas", "time_created": 1665070563, "gender": null}
{"name": "Lisa", "time_created": 1665226717, "gender": "female", "age": 59}
{"name": "James", "time_created": 1664913997, "gender": "male", "last_name": "Rogers"}
{"name": "Helen", "time_created": 1664651357, "gender": "female", "last_name": "Scott"}
{"name": "Nora", "time_created": 1664689732, "gender": "female", "age": null}

我试着写这段代码

import jsonlines
import datetime

with jsonlines.open('data.jsonl', 'r') as jsonl_f:
     lst = [obj for obj in jsonl_f]

for value_man in lst:
    for value in value_man.keys():
        value['time_created'] = datetime.datetime.fromtimestamp(value['time_created'])

print(lst)

但是我这里有一个错误
值[“创建时间”]=字符串(日期时间.日期时间.来自时间戳(值[“创建时间”]))类型错误:字符串索引必须为整数

bfhwhh0e

bfhwhh0e1#

您不需要迭代每个dict中的所有键;关键字是字符串,这就是为什么额外的迭代级别会给你一个字符串而不是实际的指令。

for value in lst:
    value['time_created'] = datetime.datetime.fromtimestamp(value['time_created'])

您还可以执行以下操作:

lst = [obj for obj in jsonl_f]

更简单地为:

lst = list(jsonl_f)
vfh0ocws

vfh0ocws2#

你访问的是字典的键,而不是值。你必须实际访问值,沿着如下:

import jsonlines
import datetime

with jsonlines.open('data.jsonl', 'r') as jsonl_f:
     lst = [obj for obj in jsonl_f]

for value_man in lst:
    for value in value_man.keys():
        if value == 'time_created':
            value_man[value] = datetime.datetime.fromtimestamp(value_man[value])

打印(第一个)

相关问题