2016-12-03 47 views
1

我用隨機數替換2010年所有出現在我的JSON文件1990年和2020年Python的類型錯誤:預期字符串或其他字符緩衝區對象

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()) 

之間我得到這個錯誤:

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

這裏是這種情況發生的一個例子:

"myDate" : "2010_02", 
+0

是否有您的JSON文件的一些空行? – ettanany

+0

@ettanany沒有黑線!每一行至少有一個字符。 – cplus

+0

@Mpondomise嘗試我的解決方案 – eyllanesc

回答

1

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.

新值必須是字符串,但是您傳遞的是int類型的值。

變化:

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

到:

line.replace('2010', str(randint(1990, 2020))).rstrip() 
相關問題