2016-12-03 11 views
0

:私は1つのコードで二つの項目を置き換えることができますどのようにPythonのline.replace複数の文字列私は、ランダムな数字で「2010」置き換えています

from random import randint 
with open("data.json", "rt") as fin: 
    with open("dataout.json", "wt") as fout: 
     for line in fin: 
      fout.write(line.replace('2010', str(randint(1990, 2007)))) 

、それは次のようになります。ただ

fout.write(line.replace('2099', str(randint(1800, 1900)))) 
fout.write(line.replace('2010', str(randint(1990, 2007)))) 
+1

ので、1行が2099と2010の両方が含まれていると、あなたは一度に代わりに二回関数を呼び出し、両方交換したいですか? – Raptor

+0

これらは異なる行にはありません。 – cplus

答えて

1

を2つ使用はreplace()方法:

from random import randint 
with open("data.json", "rt") as fin: 
    with open("dataout.json", "wt") as fout: 
     for line in fin: 
      fout.write(line.replace('2010', str(randint(1990, 2007))).replace('2099', str(randint(1800, 1900)))) 
2

あなたをあなたの行は、このような'2099'または'2010'が含まれているかどうかを確認するためにifを使用する必要があります。

from random import randint 

with open("data.json", "rt") as fin: 
    with open("dataout.json", "wt") as fout: 
     for line in fin: 
      if '2010' in line: 
       fout.write(line.replace('2010', str(randint(1990, 2007)))) 
      if '2099' in line: 
       fout.write(line.replace('2099', str(randint(1800, 1900)))) 
関連する問題