Interface Script . Today I published a simple library on pypi, Interface Script. Pitch, It's a data-interchange mechanism that you could think of as Multidimension CSV. I find much better for general use than rivals like XML, JSON, YAML. It is message-oriented, rather than document-oriented. A key quality is /interface assertions/. That is: before you send a message, you first need to assert the message type to the receiver. That way, if the receiver disagrees about the message structure, you can have it fail-fast. Website, https://github.com/cratuki/interface_script_py Installation, pip install interface_script Usage example follows. $ python3 -B -m venv venv $ . venv/bin/activate (venv) $ pip install interface_script [...] (venv) $ cat > sample.py <<END import interface_script DATA = ''' # assert the message vectors i org h name i person name age fk_org_h # messages org 0 "Piccadilly Steamship Company" org 1 "Victoria Square Consulting" person Jane 34 1 person Steve 33 1 person Alice 28 0 ''' class Handler: def on_org(self, h, name): print("Org: %s (%s)"%(name, h)) def on_person(self, name, age, fk_org_h): print("Person: %s/%s (%s)"%(name, age, fk_org_h)) def main(): handler = Handler() ob = interface_script.InterfaceScriptParser(handler) ob.parse(DATA) if __name__ == '__main__': main() END (venv) $ python3 -B -m sample Org: Piccadilly Steamship Company (0) Org: Victoria Square Consulting (1) Person: Jane/34 (1) Person: Steve/33 (1) Person: Alice/28 (0) (venv) $