Edit: The question is about retrieving properties. The following doesn't answer, but if you happen into this thread (as I did) looking to add/edit/remove properties, you might find this answer useful.
Googling pysphere vApp properties
yields this relevant discussion as first result: Access to, and modify, a VMs vApp Properties.
To quote the gist of the recipe:
# ... import, connect to server etc. ...
request = VI.ReconfigVM_TaskRequestMsg()
_this = request.new__this(vm._mor)
_this.set_attribute_type(vm._mor.get_attribute_type())
request.set_element__this(_this)
spec = request.new_spec()
vappconfig = spec.new_vAppConfig()
# e.g.
prop = vappconfig.new_property()
prop.set_element_operation('add')
info = prop.new_info()
info.set_element_key(10)
info.set_element_id("10")
info.set_element_value("test")
info.set_element_category("testCat")
vappconfig.set_element_property([prop])
spec.set_element_vAppConfig(vappconfig)
request.set_element_spec(spec)
task = viserver._proxy.ReconfigVM_Task(request)._returnval
vi_task = VITask(task, viserver)
status = vi_task.wait_for_state([vi_task.STATE_SUCCESS,
vi_task.STATE_ERROR])
The link itself gives out a nicer wrapper for making multiple add/edit/remove modifications defined by a dictionary. Check it out.