Question: I need help storing data within a python program. I don't want the user to be able to touch the data at all. I've looked into pickle but many posts say it is "insecure".

Answer: 
If the user will be running your program on his machine you just can't hide the data.

The user running the program can access everything the program can, is just a matter of knowing where to look.

If you are dealing with end-users then just encrypt the data and decrypt it at the last point before using it. Just keep in mind that, at some point, the data has to be decrypted on memory and then the user could see it.
Maybe you should look at CouchDB? You basically store data in JSON as document. It works perfectly. 

<http://code.google.com/p/couchdb-python/>