swis.query(swql) returns an dictionary with a 'results' key. This value associated with the 'results' key property holds a list of dictionaries: the rows returned by your query. Each row is represented as a dictionary with a value for each property that was selected in your query.
I'm not sure what you mean by a "better" way to iterate. Here's a variation:
results = swis.query('SELECT Uri FROM Orion.Nodes') for node in results['results']: uri = node['Uri'] swis.update(uri, ...)
I felt like my variation was inadequate because I needed a try/catch statement in order for it to work properly. Using
for x in xrange(10000)
fails once the index is out of range, so your solution seems much better. Thank you!