What would f, v be.
I get this error : ValueError : too many values to unpack

On Mon, 30 Apr 2018, 20:38 Richard Vézina <ml.richard.vez...@gmail.com>
wrote:

>
>
> On Mon, Apr 30, 2018 at 1:21 PM, Maurice Waka <mauricew...@gmail.com>
> wrote:
>
>> Sorry I tried to clarify by my new question :
>>
>> If I have a column with data like db.persons with data like
>> Carl
>> Junior
>> Maggie
>> Tom
>> Derrick
>>
>> And each column name has other fields with data such as:
>> persons.name persons.age persons.location persons.occupation
>> persons.interests
>> Carl 23 London Neuroscientist brainy stuff
>> Junior 25 Tokyo doctor medical research
>> Maggie 33 Nairobi farmer GMO research
>> Tom 25 Sydney teacher educational ideas
>> Derrick 21 Chicago surgeon Cutting through
>>
>>
>>
>> I want to iterate through the column  persons.nameand randomly pick a
>> name and using the rows object, display all data about the person.
>>
>> If I do
>> rows_name = db().select(db.persons.name).column()
>>
>
>
> The above should be :
>
> fields = db.persons.fields
> # You should have in fields a list of all fields names you migth want to
> remove "id" field by filtering it or find index and pop it out of the list
> # ex.: fields.pop(fields.index('id'))
>
>
>
>>
>>
>> rows = db(db.persons.ALL).select()
>>
>
> db(where_clause).select(fields_name_separated_by_comma)
>
> The above is completly wrong as you pass the fields instead of specifying
> your where clause parameter...
>
> In you example you really only need select like this :
>
> def some_func_name()
>     rows = db(db.persons.id > 0).select(db.persons.ALL)
>
>     rows_values = []
>     for row in rows:
>         row_value = []
>         for f, v in row:
>             if f != 'id':
>                 row_value.append(v)
>         rows_values.append(row_value)
>     return rows_values
>
> ret = some_func_name()
>
> for r in ret:
>     print(' '.join(ret))
>
> I didn't tested it but the above should work...
>
> Good luck
>
>>
>> for row in rows:
>>     if rows_name[0] == 'Maggie':
>>         for row in rows:
>>                 return [row.age+' '+row.location+' '+row.occupation+' '+
>> row.interests]
>>
>> The problem is that if I query 'Carl' which is the first item, I get the
>> response but I cant query any other name .
>> Regards
>>
>>
>>
>> --
>> Resources:
>> - http://web2py.com
>> - http://web2py.com/book (Documentation)
>> - http://github.com/web2py/web2py (Source code)
>> - https://code.google.com/p/web2py/issues/list(Report Issues)
>> ---
>> You received this message because you are subscribed to a topic in the
>> Google Groups "web2py-users" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/web2py/ynBOuIdufso/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to
>> web2py+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>> I had been using python isle to test some modules. Now I just want to get
>> a clearer code by removing the long codes.
>>
>>
>> On Mon, 30 Apr 2018, 20:09 Richard Vézina <ml.richard.vez...@gmail.com>
>> wrote:
>>
>>> Man this is convulated...
>>>
>>> Not sure what is in name4 "name4 is a list that contains items found in
>>> db.health.name, as well as other dbs." what items are you referring
>>> at?? What other dbs?
>>>
>>> Why are you connecting to sqlite by your own...
>>>
>>> This check is just weird :
>>>
>>> if id == item in name4:
>>>
>>> I would suggest you don't use function to achieve what you try to do it
>>> just make it overcomplicated... Also never define functions in models files
>>> it will slow down your app as models files are executed at each request.
>>>
>>> My guess is that if you end with the final list that you showed us is
>>> because at some point you put the name of the fields you want instead of
>>> the value attached to them...
>>>
>>> But seriously it very difficult to help...
>>>
>>> You could show us all the models that are important to the problem and
>>> show us an example of what you want at the end.
>>>
>>>
>>> I also don't know from you field name in health table what they content.
>>>
>>> So for example let say
>>>
>>>
>>> You have a table name fruit
>>>
>>> rows = db(db.fruit.id > 0).select(db.fruit.ALL)
>>>
>>> With a fruit_name field
>>>
>>> for r in rows:
>>>     print('A {0} is a fruit blah blah blah. A {0} when its green is
>>> bitter to taste. A {0} when ripe looks bright yellow and tastes
>>> sweet.'.format(r.fruit_name)
>>>
>>> That's it!!
>>>
>>> Richard
>>>
>>>
>>> On Sat, Apr 28, 2018 at 11:02 AM, Maurice Waka <mauricew...@gmail.com>
>>> wrote:
>>>
>>>> Thanks, but I seem to be having a challenge when returning the rows
>>>> from a specific id name or number. I tried this on a different app as
>>>> follows:
>>>>
>>>> Model:
>>>>
>>>> db.define_table( "health",
>>>>                 Field('name', 'string'),
>>>>                 Field('definition', 'text', length= 1000000,
>>>> default="We'll update soon.", notnull=True),
>>>>                 Field('abnvals', 'text', length= 1000000,default="We'll
>>>> update soon.", notnull=True),
>>>>                 Field('normvals', 'text', length=
>>>> 1000000,default="We'll update soon.", notnull=True),
>>>> def selections():
>>>> code
>>>> return name4# name4 is a list that contains items found in
>>>> db.health.name, as well as other dbs.
>>>>  def refer11():
>>>>     db = current.db
>>>>     rows = db(db.health).iterselect()
>>>> for row in rows:
>>>> id = row.name
>>>> if id == item in name4:
>>>> #return [', '.join(item) for item in rows]# Gives a list of the titles
>>>> only as: ['name','definition','abnvals','normvals',]
>>>>                         #return [item for item in rows]# Gives this:
>>>> [<row>
>>>>                         #return row# gives this : <row>
>>>>                         #return [item for item in row]# Gives a list of
>>>> the titles only as: ['name','definition','abnvals','normvals',]
>>>>
>>>> When using sql speak, this works well:
>>>> def refer11():
>>>> id = 0
>>>> location = ""
>>>> conn = sqlite3.connect('wellness.db')
>>>> c = conn.cursor()
>>>> c.execute('select * from health')
>>>> records = c.fetchall()
>>>> for record in records:
>>>>     id = record[1]
>>>>     for item in name4:
>>>>         if id == item in name4:
>>>>         return record[2:]
>>>>
>>>> If row.name has e.g. apple, mango, guava, pineapple, then
>>>>
>>>> and the fields contain info about the fruits e.g.
>>>>
>>>> if id/row.name picks mango, i want a list of these:
>>>>
>>>> definition data: A mango is a fruit blah blah blah.
>>>> abnvals data: A mango when its green is bitter to taste.
>>>> normvals data: A mango when ripe looks bright yellow and tastes sweet.
>>>>
>>>> so when doing return row
>>>> I should get ['A mango is a fruit blah blah blah. A mango when its
>>>> green is bitter to taste. A mango when ripe looks bright yellow and
>>>> tastes sweet.]
>>>> and not
>>>> ['name','definition','abnvals','normvals',]
>>>>
>>>> On Fri, Apr 27, 2018 at 6:16 PM, Richard Vézina <
>>>> ml.richard.vez...@gmail.com> wrote:
>>>>
>>>>> for f in db.table.fields:
>>>>>     print f
>>>>>
>>>>> or
>>>>>
>>>>> rows = db(db.fruits.id > 0).select(db.fruits.ALL)  # ALL means all
>>>>> fields
>>>>>
>>>>> for r in rows:
>>>>>     print(r)
>>>>>
>>>>> You can control which field you want with the previous example
>>>>>
>>>>> myfields = [f for f in db.table.fields if
>>>>> SOME_FILTERING_CHECK_OVER_THE_FIELD_YOU_WANT]
>>>>>
>>>>>
>>>>> for r in rows:
>>>>>     for f in myfields:
>>>>>         print(r[f])
>>>>>
>>>>>
>>>>> You can play around that you should be able to figure out how you can
>>>>> do what you wanna do.
>>>>>
>>>>> Richard
>>>>>
>>>>> On Fri, Apr 27, 2018 at 10:08 AM, Maurice Waka <mauricew...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> Addendum
>>>>>>
>>>>>> I want a single list of  the items (the data from all fields)
>>>>>>
>>>>>> regards
>>>>>>
>>>>>> On Fri, Apr 27, 2018 at 5:06 PM, Maurice Waka <mauricew...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> There are several fields in my db such as this:
>>>>>>>
>>>>>>> db.define_table('fruit', Field('id', 'reference auth_user'), 
>>>>>>> Field('apple','boolean',label=T('Apple')), 
>>>>>>> Field('apricot','boolean',label=T('Apricot')), 
>>>>>>> Field('cherry','boolean',label=T('Cherry')), Field('fig','boolean', 
>>>>>>> label=T('Fig')), Field('lychee','boolean', label=T('Lychee')), 
>>>>>>> Field('peach','boolean', label=T('Peach')), Field('pear','boolean', 
>>>>>>> label=T('Pear')), Field('plum','boolean', label=T('Plum')))
>>>>>>> If i want to print items from a specific field i would do:
>>>>>>>
>>>>>>> rows = db(db.fruits)select()for row in rows:
>>>>>>>  return row.apple
>>>>>>>
>>>>>>>
>>>>>>> Now I want to return all data from all fields. How Can i go about it.
>>>>>>>
>>>>>>> I have tried:
>>>>>>>
>>>>>>> return rows and I get a blank screen.
>>>>>>>
>>>>>>> return [rows] and I get [<rows>].
>>>>>>>
>>>>>>> Kind regards
>>>>>>>
>>>>>>> --
>>>>>>> Resources:
>>>>>>> - http://web2py.com
>>>>>>> - http://web2py.com/book (Documentation)
>>>>>>> - http://github.com/web2py/web2py (Source code)
>>>>>>> - https://code.google.com/p/web2py/issues/list (Report Issues)
>>>>>>> ---
>>>>>>> You received this message because you are subscribed to a topic in
>>>>>>> the Google Groups "web2py-users" group.
>>>>>>> To unsubscribe from this topic, visit
>>>>>>> https://groups.google.com/d/topic/web2py/-Hlx1yh-4MU/unsubscribe.
>>>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>>>> web2py+unsubscr...@googlegroups.com.
>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>
>>>>>>
>>>>>> --
>>>>>> Resources:
>>>>>> - http://web2py.com
>>>>>> - http://web2py.com/book (Documentation)
>>>>>> - http://github.com/web2py/web2py (Source code)
>>>>>> - https://code.google.com/p/web2py/issues/list (Report Issues)
>>>>>> ---
>>>>>> You received this message because you are subscribed to the Google
>>>>>> Groups "web2py-users" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>> send an email to web2py+unsubscr...@googlegroups.com.
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>>
>>>>> --
>>>>> Resources:
>>>>> - http://web2py.com
>>>>> - http://web2py.com/book (Documentation)
>>>>> - http://github.com/web2py/web2py (Source code)
>>>>> - https://code.google.com/p/web2py/issues/list (Report Issues)
>>>>> ---
>>>>> You received this message because you are subscribed to a topic in the
>>>>> Google Groups "web2py-users" group.
>>>>> To unsubscribe from this topic, visit
>>>>> https://groups.google.com/d/topic/web2py/-Hlx1yh-4MU/unsubscribe.
>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>> web2py+unsubscr...@googlegroups.com.
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>> --
>>>> Resources:
>>>> - http://web2py.com
>>>> - http://web2py.com/book (Documentation)
>>>> - http://github.com/web2py/web2py (Source code)
>>>> - https://code.google.com/p/web2py/issues/list (Report Issues)
>>>> ---
>>>> You received this message because you are subscribed to the Google
>>>> Groups "web2py-users" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to web2py+unsubscr...@googlegroups.com.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>> --
>>> Resources:
>>> - http://web2py.com
>>> - http://web2py.com/book (Documentation)
>>> - http://github.com/web2py/web2py (Source code)
>>> - https://code.google.com/p/web2py/issues/list (Report Issues)
>>> ---
>>> You received this message because you are subscribed to a topic in the
>>> Google Groups "web2py-users" group.
>>> To unsubscribe from this topic, visit
>>> https://groups.google.com/d/topic/web2py/-Hlx1yh-4MU/unsubscribe.
>>> To unsubscribe from this group and all its topics, send an email to
>>> web2py+unsubscr...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>> --
>> Resources:
>> - http://web2py.com
>> - http://web2py.com/book (Documentation)
>> - http://github.com/web2py/web2py (Source code)
>> - https://code.google.com/p/web2py/issues/list (Report Issues)
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "web2py-users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to web2py+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
> --
> Resources:
> - http://web2py.com
> - http://web2py.com/book (Documentation)
> - http://github.com/web2py/web2py (Source code)
> - https://code.google.com/p/web2py/issues/list (Report Issues)
> ---
> You received this message because you are subscribed to a topic in the
> Google Groups "web2py-users" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/web2py/-Hlx1yh-4MU/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> web2py+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to