Why am I getting "AttributeError: 'module' object has no attribute 'replace'" on string.replace()
22,576
Solution 1
Methods in the string
module have been deprecated for years. You should call replace
directly on your string, or contri[6]
.
Solution 2
It is now on str.replace
on Python 3.
Looks like the same thing renamed, have the same signature and a docstring with the same meaning.
Author by
Jeff
Updated on July 12, 2022Comments
-
Jeff almost 2 years
The line causing the error is
totalR = totalR + (float(string.replace(contri[0][5],",","")) + float(string.replace(contri[0][6],",","")))
contri[0][5] and [6] are strings that contain numbers formatted as 1,000.00. I'm removing the commas before I cast the strings as floats in order to add them to totalR, which is a float. (Created as totalR = 0.0) I also tried using Decimal, but the error happened there too. I did "import string". The program fails with error:
File "mine.py", line 43, in fillDonorData totalR = totalR + (float(string.replace(contri[0][5],",","")) + float(string.replace(contri[0][6],",",""))) AttributeError: 'module' object has no attribute 'replace'
-
abarnert over 10 yearsIn 2.x, the Deprecated string functions still work despite being deprecated. In 3.x, most of them (including
replace
) no longer exist. However, there are still plenty of non-deprecated functions, constants, and classes instring
. -
Zizouz212 almost 9 years
string
is a builtin module. But this is correct, you would have to reload if changes are made.