ValueError:未转换的数据仍然是:02:05

 2012-末日审判 发布于 2023-02-13 14:08

我在json文件中有一些日期,我正在搜索与今天日期相对应的日期:

import  os
import time
from datetime import datetime
from pytz import timezone

input_file  = file(FILE, "r")
j = json.loads(input_file.read().decode("utf-8-sig"))

os.environ['TZ'] = 'CET'

for item in j:
    lt = time.strftime('%A %d %B')
    st = item['start']
    st = datetime.strptime(st, '%A %d %B')

    if st == lt :
        item['start'] = datetime.strptime(st,'%H:%M') 

我有这样的错误:

File "/home/--/--/--/app/route.py", line 35, in file.py

st = datetime.strptime(st, '%A %d %B')

File "/usr/lib/python2.7/_strptime.py", line 328, in _strptime

data_string[found.end():])

ValueError: unconverted data remains: 02:05

你有什么建议吗 ?

3 个回答
  • stst = datetime.strptime(st, '%A %d %B')线像01 01 2013 02:05strptime无法解析此.事实上,除了日期之外你还需要一个小时...你需要%H:%M在你的strptime 添加.

    2023-02-13 14:11 回答
  • 你必须解析所有输入字符串,你不能只忽略部分.

    from datetime import date, datetime
    
    for item in j:
        st = datetime.strptime(item['start'], '%A %d %B %H:%M')
    
        if st.date() == date.today():
            item['start'] = st.time()
    

    在这里,我们通过使用更多datetime对象而不是尝试使用字符串来比较日期与今天的日期.

    另一种方法是仅通过部分中的item['start']字符串(分裂出去只是时间),但实在是没有点在这里,而不是当你可以只在一个步骤解析一切首位.

    2023-02-13 14:11 回答
  • 最好的答案是使用from dateutil import parser

    用法:

    from dateutil import parser
    datetime_obj = parser.parse('2018-02-06T13:12:18.1278015Z')
    print datetime_obj
    # output: datetime.datetime(2018, 2, 6, 13, 12, 18, 127801, tzinfo=tzutc())
    

    2023-02-13 14:11 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有