私はjsonファイルを持っています。何らかの処理をしています。私は操作を一時停止しなければならなかったので、私が残したところで処理を再開したいと思います。 Whileループ条件が満たされていなくてもIf条件が実行されるという問題があります。私の理解から、Whileループが条件を満たすまでコードに到達できないはずです。どこが間違っていますか?文字列が一致した後にファイルを処理する
row_counter = 0
start_now = 0
Finished = 0
with open('jsonfile') as f:
for row in f:
row_counter += 1
if row_counter > start_now:
try:
row = json.loads(row)
comment_id = row['id']
while Finished == 0:
if (comment_id != 'The_String_I_Wanna_Match'):
Finished = True
break
if (condition):
print('code i want to execute')
except Exception as e:
print(e)
if (row_counter % 100000 == 0):
print('no. of rows gone by {}'.format(row_counter))
あなたのコードに到達できないと思われるかどうかはわかりません。私はまた、あなたが無限ループに閉じ込められていないかどうかも分かりません。その 'while Finished == 0 ...'は、最初のjson行にあなたがマッチさせようとしている文字列が含まれていない限り、決して終了してはいけません。いずれにせよ、最初の行があなたの文字列を持っていると仮定すると、あなたのwhileループが壊れているので、あなたの条件がすぐに呼び出されます。 – MCBama
また、ベストプラクティスのリマインダーとして:大文字の変数名を使用しないでください。条件を実行する場合、ブール値を使用することができます。 – MCBama
あなたが正しいと思うサンプルコードを手伝ってくれますか?それは本当に私が一日中このことに執着しているのを助けてくれるでしょう。 @MCBama – Sahil