The ZCatalog does not return dictionaries. It returns a sequence of result objects (called Catalog Brains, because you can give them smarts. Long historical story).
So you loop over them, and each object has attributes for each metadata column you defined in the catalog:
links = self.catalog(portal_path='Link')
for link in links:
print link.Title
If you need to dynamically loop over the available attributes, use .schema()
for the keys:
for link in links:
for key in link.schema():
print link[attr]