私がここでやろうとしているのは、存在していなければポケモンの目撃の緯度と経度をテキストファイルに書き出すことです。私は無限ループを使用しているので、すでに存在する座標の組が追加されるのを防ぐif-stateを追加しました。 私は同じ情報を格納するCoordinatesも持っていることに注意してください。ただし、テキストファイルは理論的にはリストと同じifブロック内に含まれていてはならないにもかかわらず、何度も何度も追加された同じ座標を持っています。明確にするためIf文が書き込み操作によって一見無視される
import requests
pokemon_url = 'https://pogo.appx.hk/top'
while True:
response = requests.get(pokemon_url)
response.raise_for_status()
pokemon = response.json()[0:]
Sighting = 0
Coordinates = [None] * 100
for num in range(len(pokemon)):
if pokemon[num]['pokemon_name'] == 'Aerodactyl':
Lat = pokemon[num]['latitude']
Long = pokemon[num]['longitude']
if (Lat, Long) not in Coordinates:
Coordinates[Sighting] = (Lat, Long)
file = open("aerodactyl.txt", "a")
file.write(str(Lat) + "," + str(Long) + "\n")
file.close()
Sighting += 1
、これはあなたがあなたがそれらを反復ごとにリセットしたくない場合はwhile
ループの外であなたのSighting
とCoordinates
変数を配置する必要があり、出力
このコードは完全に台無しにされています。 'while True'ループは決して終了せず、' file.close'呼び出しの後に一対の括弧を追加するのを忘れてしまいます。 – xmcp
'for'ループは' while'ループの中にあるはずですか? – Barmar
リストの代わりに座標の 'set()'をお勧めします。 –