代码之家  ›  专栏  ›  技术社区  ›  Arash Koushkebaghi

ValueError:无效的isoformat字符串:“操作日期”

  •  -1
  • Arash Koushkebaghi  · 技术社区  · 2 年前

    Python新手。这可能是Python特有的问题,而不是与日期时间库有关的问题。我正在尝试将一个字符串值强制转换为日期对象,该值采用ISO8601格式。然而,我不断收到以下错误:

    File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/_strptime.py", line 349, in _strptime
    raise ValueError("time data %r does not match format %r" %
    ValueError: time data 'Operation Date' does not match format '%Y-%m-%dT%H:%M:%S.%fZ'
    

    甚至不知道“手术日期”是什么意思。 这是代码:

    with open('ledger.csv', 'r') as csv_file:
      reader = csv.reader(csv_file)
    
      for row in reader:
        datetime.strptime("2024-01-02T06:39:27.000Z", "%Y-%m-%dT%H:%M:%S.%fZ") #OK
        datetime.strptime(row[0], "%Y-%m-%dT%H:%M:%S.%fZ") #ERROR!
      csv_file.close()
    

    请注意,循环中的第一行运行良好。然而,第二行出现错误

    以下是我的ledger.CSV文件中的CSV行格式:

    2023-12-22T22:14:46.000Z,MATIC,NFT_IN,....
    2023-12-22T22:12:55.000Z,MATIC,NFT_IN,......
    
    1 回复  |  直到 2 年前
        1
  •  1
  •   Aswin Murugesh    2 年前

    分析CSV文件的列标题时出错。使用默认csv读取器时,列标题也被视为正常行。您可以使用 DictReader 相反

    with open('ledger.csv', 'r') as csv_file:
        reader = csv.DictReader(csv_file)
        for row in reader:
            datetime.strptime(row['Operation Date'], "%Y-%m-%dT%H:%M:%S.%fZ")