Your proposed method will result in many more read operations, not less, because now you read all entities, whether you need them or not.
This is how you can optimize it, if you can override the existing entities:
for item in data:
InfoDB(id=item['id'], data=item['data']).put()
If you cannot override the existing entities, you should use a keys-only query:
for key in query.iter(keys_only=True):
Keys-only queries are now free, as opposed to fetching complete entities.