I am working on a small program that reads data from a CSV file. As part of the program, user input is used to only select data that >= but I get TypeError: unorderable types: str() >= int() when I run the code. Looks like the sting is not converting to integer.
def get_csv_data(data_type, num): import csv ga_session_data = {} ga_pageviews_data = {} with open('files/data.csv', 'r') as csvfile: reader = csv.reader(csvfile) for row in reader: page, sessions, pageviews = row ga_session_data[page] = int(sessions) ga_pageviews_data[page] = int(pageviews) if data_type == 'sessions' and sessions >= int(num): for page, sessions in ga_session_data.items(): print(page, ' - ', sessions) elif data_type == 'pageviews' and pageviews >= int(num): for page, pageviews in ga_pageviews_data.items(): print(page, ' - ', pageviews) def main(): while(True): question = input("Are you interested in sessions or pageviews?") if question == 'sessions': number = int(input("What range are you interested in?")) get_csv_data(data_type = 'sessions', num = int(number)) elif question == 'pageviews': number = input("What range are you interested in?") get_csv_data(data_type = 'pageviews', num = int(number)) else: print("Invalid Input. Choose between sessions and pageviews.") main()
sessions >= int(num), you're comparing a string (sessions) with an int.