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


i having trouble passing function parameter function. code:

ga.py:

def display_pageviews(hostname):     pageviews_results = get_pageviews_query(service, hostname).execute()     if pageviews_results.get('rows', []):         pv = pageviews_results.get('rows')         return pv[0]     else:         return none   def get_pageviews_query(service, hostname):       return service.data().ga().get(         ids=view_id,         start_date='7daysago',         end_date='today',         metrics='ga:pageviews',         sort='-ga:pageviews',         filters='ga:hostname==%s' % hostname,) 

models.py:

class stats(models.model):     user = models.onetoonefield('auth.user')     views = models.integerfield()     visits = models.integerfield()     unique_visits = models.integerfield() 

updatestats.py:

class command(basecommand):      def handle(self, *args, **options):         users = user.objects.all()         try:             user in users:                 hostname = '%s.%s' % (user.username, settings.network_domain)                 stats = stats.objects.update_or_create(                     user=user,                     views=display_pageviews(hostname),                     visits=display_visits(hostname),                     unique_visits=display_unique_visits(hostname),)         except fielderror:             print ('there field error.') 

when run this: python manage.py updatestats error:

typeerror: int() argument must string, bytes-like object or number, not 'list'

i don't know what's causing this. i've tried converting string, same error. ideas?

full traceback:

traceback (most recent call last):   file "manage.py", line 20, in <module>     execute_from_command_line(sys.argv)   file "/users/myusername/project/dev/lib/python3.4/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line     utility.execute()   file "/users/myusername/project/dev/lib/python3.4/site-packages/django/core/management/__init__.py", line 345, in execute     self.fetch_command(subcommand).run_from_argv(self.argv)   file "/users/myusername/project/dev/lib/python3.4/site-packages/django/core/management/base.py", line 348, in run_from_argv     self.execute(*args, **cmd_options)   file "/users/myusername/project/dev/lib/python3.4/site-packages/django/core/management/base.py", line 399, in execute     output = self.handle(*args, **options)   file "/users/myusername/project/dev/project_files/project/main/management/commands/updatestats.py", line 23, in handle     unique_visits=display_unique_visits(hostname),)   file "/users/myusername/project/dev/lib/python3.4/site-packages/django/db/models/manager.py", line 122, in manager_method     return getattr(self.get_queryset(), name)(*args, **kwargs)   file "/users/myusername/project/dev/lib/python3.4/site-packages/django/db/models/query.py", line 480, in update_or_create     obj = self.get(**lookup)   file "/users/myusername/project/dev/lib/python3.4/site-packages/django/db/models/query.py", line 378, in     clone = self.filter(*args, **kwargs)   file "/users/myusername/project/dev/lib/python3.4/site-packages/django/db/models/query.py", line 790, in filter     return self._filter_or_exclude(false, *args, **kwargs)   file "/users/myusername/project/dev/lib/python3.4/site-packages/django/db/models/query.py", line 808, in _filter_or_exclude     clone.query.add_q(q(*args, **kwargs))   file "/users/myusername/project/dev/lib/python3.4/site-packages/django/db/models/sql/query.py", line 1243, in add_q     clause, _ = self._add_q(q_object, self.used_aliases)   file "/users/myusername/project/dev/lib/python3.4/site-packages/django/db/models/sql/query.py", line 1269, in _add_q     allow_joins=allow_joins, split_subq=split_subq,   file "/users/myusername/project/dev/lib/python3.4/site-packages/django/db/models/sql/query.py", line 1203, in build_filter     condition = self.build_lookup(lookups, col, value)   file "/users/myusername/project/dev/lib/python3.4/site-packages/django/db/models/sql/query.py", line 1099, in build_lookup     return final_lookup(lhs, rhs)   file "/users/myusername/project/dev/lib/python3.4/site-packages/django/db/models/lookups.py", line 19, in __init__     self.rhs = self.get_prep_lookup()   file "/users/myusername/project/dev/lib/python3.4/site-packages/django/db/models/lookups.py", line 57, in get_prep_lookup     return self.lhs.output_field.get_prep_lookup(self.lookup_name, self.rhs)   file "/users/myusername/project/dev/lib/python3.4/site-packages/django/db/models/fields/__init__.py", line 1860, in get_prep_lookup     return super(integerfield, self).get_prep_lookup(lookup_type, value)   file "/users/myusername/project/dev/lib/python3.4/site-packages/django/db/models/fields/__init__.py", line 744, in get_prep_lookup     return self.get_prep_value(value)   file "/users/myusername/project/dev/lib/python3.4/site-packages/django/db/models/fields/__init__.py", line 1854, in get_prep_value     return int(value) typeerror: int() argument must string, bytes-like object or number, not 'list' 

edit:

alright, understand issue is. used shell type of function output:

>>> type(display_pageviews('test.domain.com')) <class 'list'> 

i tried still considered list:

pv = pageviews_results.get('rows')[0]     return pv 

what error telling, can't convert entire list integer. index list , convert integer:

x = ["0", "1", "2"]  y = int(x[0]) #accessing zeroth element 

if trying convert whole list integer, going have convert list string first:

x = ["0", "1", "2"] y = str(''.join(x))# converting list string z = int(y) 

as stated above, make sure you're not returning nested list.


Comments