Argument 1 must be string, not datetime.datetime?

Pemi Ng

I just took a Data Analysis course on Udacity. My code is:

enrollments_filename= '/Users/abc/Desktop/Udacity - Intro to Data Analysis/enrollments.csv'

def open_file(filename):
    with open(filename, 'rb') as f:
        reader = unicodecsv.DictReader(f)
        return list(reader)

enrollments = open_file(enrollments_filename)

# Takes a date as a string, and returns a Python datetime object. 
# If there is no date given, returns None

from datetime import datetime as dt    
def parse_date(date):
    if date == '':
        return None
    else:
        return dt.strptime(date, '%Y-%m-%d')

# Takes a string which is either an empty string or represents an integer,
# and returns an int or None.

def parse_maybe_int(i):
    if i == '':
        return None
    else:
        return int(i)

for enrollment in enrollments:
    enrollment['cancel_date'] = parse_date(enrollment['cancel_date'])
    enrollment['days_to_cancel'] = parse_maybe_int(enrollment['days_to_cancel'])
    enrollment['is_canceled'] = enrollment['is_canceled'] == 'True'
    enrollment['is_udacity'] = enrollment['is_udacity'] == 'True'
    enrollment['join_date'] = parse_date(enrollment['join_date'])

enrollments[0]    

Here is the error I got:

TypeError: strptime() argument 1 must be string, not datetime.datetime

Can anyone explain to me why? When I change date to str(date), here is the error I got:

//anaconda/lib/python2.7/_strptime.pyc in _strptime(data_string, format)
    333     if len(data_string) != found.end():
    334         raise ValueError("unconverted data remains: %s" %
--> 335                           data_string[found.end():])
    336 
    337     year = None


ValueError: unconverted data remains:  00:00:00

The weird thing is, when I first ran the code, it works. But then I re-pressed the second time and it returned the error! Thanks very much!

MMN

I bet you ran this line twice in your shell/session:

enrollment['cancel_date'] = parse_date(enrollment['cancel_date'])

The first time works, but now enrollment['cancel_date'] is a date, not a string. Second time you ran it - error.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Java

Converting string into datetime

From Dev

Datetime string format alignment

From Dev

javascript datetime to string and back to datetime?

From Dev

Java String to DateTime

From Dev

TypeError: unbound method Date() must be called with DateTime instance as first argument (got int instance instead)

From Dev

String to DateTime conversion Failing

From Dev

String to datetime django

From Dev

String to DateTime Parsing

From Dev

argument must be 9-item sequence, not datetime.datetime

From Dev

date_format() expects parameter 1 to be DateTime, string given

From Dev

How to format string to datetime?

From Dev

Getting TypeError: type() argument 1 must be string, not None

From Dev

TypeError: int() argument must be a string or a number, not 'datetime.datetime'

From Dev

TypeError: string indices must be integers datetime

From Dev

Formatting python datetime object as argument

From Dev

TypeError: int() argument must be a string, a bytes-like object or a number, not 'datetime.datetime'

From Dev

Parse string to DateTime, sometimes adds 1 hour (timezone)

From Dev

TypeError: must be string, not datetime.datetime when using strptime

From Dev

Argument must be a string in nodejs

From Dev

Elixir: string to datetime

From Dev

Convert string of datetime to datetime object

From Dev

DateTime to String

From Dev

Getting TypeError: type() argument 1 must be string, not None

From Dev

Formatting python datetime object as argument

From Dev

Django celery beat error: TypeError('astimezone() argument 1 must be datetime.tzinfo, not tuple',)

From Dev

flask-mail TypeError: getaddrinfo() argument 1 must be string or None

From Dev

date_add() expects parameter 1 to be DateTime, string given

From Dev

Datetime behaviour TypeError: parser() missing 1 required positional argument:

From Dev

Laravel Typer error: Argument 1 passed to must be an instance of . string given

Related Related

  1. 1

    Converting string into datetime

  2. 2

    Datetime string format alignment

  3. 3

    javascript datetime to string and back to datetime?

  4. 4

    Java String to DateTime

  5. 5

    TypeError: unbound method Date() must be called with DateTime instance as first argument (got int instance instead)

  6. 6

    String to DateTime conversion Failing

  7. 7

    String to datetime django

  8. 8

    String to DateTime Parsing

  9. 9

    argument must be 9-item sequence, not datetime.datetime

  10. 10

    date_format() expects parameter 1 to be DateTime, string given

  11. 11

    How to format string to datetime?

  12. 12

    Getting TypeError: type() argument 1 must be string, not None

  13. 13

    TypeError: int() argument must be a string or a number, not 'datetime.datetime'

  14. 14

    TypeError: string indices must be integers datetime

  15. 15

    Formatting python datetime object as argument

  16. 16

    TypeError: int() argument must be a string, a bytes-like object or a number, not 'datetime.datetime'

  17. 17

    Parse string to DateTime, sometimes adds 1 hour (timezone)

  18. 18

    TypeError: must be string, not datetime.datetime when using strptime

  19. 19

    Argument must be a string in nodejs

  20. 20

    Elixir: string to datetime

  21. 21

    Convert string of datetime to datetime object

  22. 22

    DateTime to String

  23. 23

    Getting TypeError: type() argument 1 must be string, not None

  24. 24

    Formatting python datetime object as argument

  25. 25

    Django celery beat error: TypeError('astimezone() argument 1 must be datetime.tzinfo, not tuple',)

  26. 26

    flask-mail TypeError: getaddrinfo() argument 1 must be string or None

  27. 27

    date_add() expects parameter 1 to be DateTime, string given

  28. 28

    Datetime behaviour TypeError: parser() missing 1 required positional argument:

  29. 29

    Laravel Typer error: Argument 1 passed to must be an instance of . string given

HotTag

Archive