Basically I have two raspberry pi's and I want one to publish data obtained from a dictionary in a python file and the the other to subscribe to this dictionary data.  Apologies if this is a very bland question but I can't find any info on the internet regarding this.
If you want to send a dictionary directly from a python script on Host A to a python script on Host B there is a way. 

Convert your dictionary into a string.
Send the string as a payload from Host A to the broker.
Subscribe to the broker with Host B and receive the payload.
Evaluate the string with ast.literal_eval() which will convert it back into a dictionary.

If that explanation is unclear I could post some example code.
I would probably use JSON or multiple topics instead but the above procedure will work.
How does one send data from a dictionary over an mqtt broker