私はループ内で試してきました。真のループ、次の間などです。情報が何度も何度も繰り返されるか、素子。私はSOとgoogleで解決策を探したが、成功しなかった。私がやろうとしています何別のリストからの各値を使用して、Pythonリストのルックアップ要素
はこれです:
for feature in parJson:
ids = feature['properties']['id']
event = feature['properties']['event']
headline = feature['properties']['headline']
expires = feature['properties']['expires']
areaDesc = feature['properties']['areaDesc']
geoCodes = feature['properties']['geocode']['UGC']
states = alerts.getZones(geoCodes)
def getZones(self, getZones):
zones = json.loads(open("resources/zones.json").read())
parsedZones = zones['features']
#TODO figure out how to compare this list!
states = []
for ugcCode in getZones:
ugcCode = str(ugcCode)
for element in parsedZones:
ugc = element['properties']['id']
state = element['properties']['state']
if ugc == ugcCode:
states.append(state)
break
print(states)
getZones UGCジオコードゾーンのリストです。 parsedZonesはapi.weather.gov/alerts/activeの警告警告のjsonリストです。
とデータ:
parsedZones:https://api.weather.gov/zones(それはとても大きいので、ディスクにダウンロード)
parJson:https://api.weather.gov/alerts/active
アクティブアラートのリストから、私はUGCコードを取得警告は有効です。 APIは状態を与えず、それらのコードだけを与えます。だから私はコードを状態名にデコードする必要がある。私はすでに州名/略語のある辞書を持っています。私が必要とするのは、警告に列挙されているUGCコードに基づいたユニークな状態のPythonセットです。状態を取得したら、省略形を使って各状態名を検索し、状態を表示することができます。だからこのようになる:
テキサス州とオクラホマ州に警告があるとしましょう。提供されるコードはOKC001とTXC001です。最初の2文字を得るためにstartswithを使うことはできません。なぜなら、いくつかの領域は州の省略形で始まらないからです。したがって、私はサーバーにダウンロードしたapiによって提供されるゾーンリストを使用する必要があります。私は一度に1つずつ提供される各コードを検索し、2文字の略語を取得する必要があります。私はそれを取得した後、私はそれを使用することができます。しかし、私はそれを動作させるように見えることはできません。目標は、各状態の省略形をセットに追加して一意の値を取得することです。
私がこれまで行ったことの最終結果はこれです:
[] None
Severe Thunderstorm Watch
Windsor; Orange; Rutland
[] None [] None
Flood Warning
DeKalb; Marshall
['IN', 'IN', 'IN'] None
Special Weather Statement
Miami; Wabash; Huntington
['PA', 'PA', 'PA'] None
Special Weather Statement
Wyoming; Lackawanna; Luzerne
[] None
Flood Advisory
Sequoyah
['NY', 'NY', 'NY', 'NY', 'NY', 'NY', 'NY'] None
Special Weather Statement
Onondaga; Madison; Northern Oneida; Southern Oneida; Cortland; Otsego; Chenango
"for"ループでループするたびに、以前の実行から情報を上書きします。このコードは、それらの変数のすべてを、最後に見た値に対応する変数として設定します。 – mauve
ありがとうございました。私は同じ結果を持つ変数を設定せずにこれを試してみました。基本的には、状態がリストされた行と、状態がリストされていない行があります。私はこれが上書きによって引き起こされたと推測しています.. – JasonG
あなたが望む出力は何ですか? – mauve