Pyserial sends strings, and it sounds like you are on the right track if you are getting a string to send at all. Loop the tx/rx and run the pyserial test program provided in the docs. change the port to ‘/dev/ttyTHS1’ where it says ‘LOOP://…’. I presume it will pass all the tests but 2… that being the dtr/cts tests.
Additionally, if you have a scope or a Diligent Analog Discovery board, you can pass the uart through the spy and see the data being transferred in real time.
For your application, make sure the peripheral device uses 3.3V logic levels or it will need a level converter.