This is the problem:
global str
str = str(mar)
You are redefining what str() means. str is the built-in Python name of the string type, and you don’t want to change it.
Use a different name for the local variable, and remove the global statement.
While not in your code, another hard-to-spot error is when the % character is missing in an attempt of string formatting:
“foo %s bar %s coffee”(“blah”,”asdf”)
but it should be:
“foo %s bar %s coffee”%(“blah”,”asdf”)
The missing % would result in the same TypeError: ‘str’ object is not callable.