从 json.loads 检索到的纪元时间中删除 ms
Remove ms from epoch time retrieved with json.loads
我有一个竖线分隔的文件,其中一个字段包含一些 JSON 格式的信息:
1|2|{"StartTime":1572300507000,"EndTime":1547506800474,"DeleteTime":1572217199000}|4
为了检索 JSON 值,我使用了 json.loads。
波纹管是我的代码的一部分:
import sys,json,time
with open(sys.argv[1], 'r') as file:
for line in file:
fields = line.split('|')
print time.strftime('"%Y%m%d%H%M%S"', time.localtime(json.loads(fields[2])['StartTime'])
这没有按预期工作,因为纪元时间也有 ms。最简单的解决方案是用 1000 划分纪元并执行如下操作:
time.strftime('"%Y%m%d%H%M%S"', time.localtime(json.loads(fields[2])['StartTime']/1000)
这当然不起作用,因为我收到以下错误:
TypeError: unsupported operand type(s) for /: 'time.struct_time' and 'int'
执行此操作的正确方法是什么?我也在尝试找到最有效的方法,因为该文件有数百万行。
你应该除以这个数字,你的错误是因为括号不匹配:
d = '''{"StartTime":1572300507000,"EndTime":1547506800474,"DeleteTime":1572217199000}'''
time.strftime('"%Y%m%d%H%M%S"', time.localtime(json.loads(d)['StartTime']/1000))
输出:
'"20191028230827"'
我有一个竖线分隔的文件,其中一个字段包含一些 JSON 格式的信息:
1|2|{"StartTime":1572300507000,"EndTime":1547506800474,"DeleteTime":1572217199000}|4
为了检索 JSON 值,我使用了 json.loads。
波纹管是我的代码的一部分:
import sys,json,time
with open(sys.argv[1], 'r') as file:
for line in file:
fields = line.split('|')
print time.strftime('"%Y%m%d%H%M%S"', time.localtime(json.loads(fields[2])['StartTime'])
这没有按预期工作,因为纪元时间也有 ms。最简单的解决方案是用 1000 划分纪元并执行如下操作:
time.strftime('"%Y%m%d%H%M%S"', time.localtime(json.loads(fields[2])['StartTime']/1000)
这当然不起作用,因为我收到以下错误:
TypeError: unsupported operand type(s) for /: 'time.struct_time' and 'int'
执行此操作的正确方法是什么?我也在尝试找到最有效的方法,因为该文件有数百万行。
你应该除以这个数字,你的错误是因为括号不匹配:
d = '''{"StartTime":1572300507000,"EndTime":1547506800474,"DeleteTime":1572217199000}'''
time.strftime('"%Y%m%d%H%M%S"', time.localtime(json.loads(d)['StartTime']/1000))
输出:
'"20191028230827"'