Thanks.
It iterates well giving some fields data, but not all as needed. I get data
from some 4 fields only. I have about 60 in some db. Plus there is this:
<pydal.helpers.classes.recordupdater>
On Tue, 1 May 2018, 16:44 Richard Vézina <ml.richard.vez...@gmail.com>
wrote:

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

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