简体   繁体   中英

Python TypeError: expected a string or other character buffer object

I am replacing all the occurrences of 2010 in my JSON file with a random number between 1990 and 2020.

import fileinput
from random import randint
f = fileinput.FileInput('data.json', inplace=True, backup='.bak')
for line in f:
    print(line.replace('2010', randint(1990, 2020)).rstrip())

I get this error:

Traceback (most recent call last): File "replace.py", line 5, in print(line.replace('2010', randint(1990, 2020)).rstrip()) TypeError: expected a string or other character buffer object

And here is one example of such an occurrence:

"myDate" : "2010_02",

string.replace(s, old, new[, maxreplace])

Return a copy of string s with all occurrences of substring old replaced by new. If the optional argument maxreplace is given, the first maxreplace occurrences are replaced.

The new value must be string, but you are passing a value of type int.

change :

line.replace('2010', randint(1990, 2020)).rstrip())

to:

line.replace('2010', str(randint(1990, 2020))).rstrip()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM