for f, v in row:

Should be

for f, v in row.iteritems():

k, v for key, value, but I use f instead of k because you will have
field_name and value in this for loop...

Richard

On Mon, Apr 30, 2018 at 11:39 PM, Maurice Waka <mauricew...@gmail.com>
wrote:

> 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.
>

-- 
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