0
をPythonでJSONデータとは別の例を抽出し、値を割り当てる:私は何をしたいかは、私は、JSON形式のエントリのリストを持っているJSONデータに基づいて
data =
[
{'data_1': 1, 'data_2': 1, 'key': A},
{'data_1': 0, 'data_2': 1, 'key': B},
{'data_1': 1, 'data_2': 0, 'key': A}
....
]
はキーによって明確な例を抽出し、その値を追加することですdata_1の値が0の場合は「Good」、data_1の値が1の場合は「Bad」の値を追加します。
今私のソリューション:
- は、リスト内の各アイテムを
distinct = []
とused_data = []
- 反復を作成し、item.keyがused_dataでない場合は、明確なに
{'key': item.key, 'value': "Good" (if item.data_1 is 0) or "Bad" (if item.data_1 is 1)}
を追加 - item.key値を抽出
- がすでに
used_data
にある場合は、既存のキーエントリが見つかるまで別のものを繰り返し、data_1が1と等しい場合にはBadに変更します。いくつかのポイント。値が悪ければ、それは決して良いとはなりません。ただし、値がGoodの場合、そのKeyに対してdata_1が1になるとBadになることがあります。
擬似コード:
distinct = []
used_data = []
for each in data:
if each['key'] not in used_data:
used_data.append(each['key'])
if each['data_1'] = 1:
distinct.append({'key':each.key, 'data_1': each.data_1, 'value':'Bad'})
else:
distinct.append({'key':each.key, 'data_1': each.data_1, 'value':'Good'})
else:
for every in distinct:
if every['key'] = each['key']:
#change every.value to Bad if each.data_1 is 1
上記の作品が、それは私にとって非常に非効率的な感じ、より良い方法がある場合、私は疑問に思って。私のためにこれを行うことができるjson特有の機能はありますか?
を私がやりました!ありがとうございました。 – RebeccaK375
ポイント4については、明確にする必要があります。それは "良い"から "悪い"に行くことができますが、それは再び "良い"に戻ることができますか?もしそうなら、辞書はリストよりはるかに良いでしょう。 – roganjosh