次のコードをリスト上で繰り返し、データを使って辞書を作成します。辞書の値を繰り返しながら変更する
self.data = [["name1.co.uk", "123", "A", "1.2.3.4"],["name2.com", "122", "NS", "ns1.google.com"]]
for each_list in self.data:
self.terrarecord[each_list[0].replace('.', '')] = {
"zone_id": self.zone_id,
"name": each_list[0] + self.url, # not sure if I need to do this
"type": each_list[2],
"ttl": each_list[1],
"records": [each_list[3].replace('\n', '')]
}
私はこれはおそらく非常にPython的ではありません実現し、これを行う方法上の任意の提案は、このより雄弁に、私はそれぞれにランダムな値を追加されて何をしたいのか
Anyhooを、高く評価されるだろうコードがデータをループする際に生成されるキー。
だから私は、完成した結果は次のようなものに見えるかもしれませんので、最後にランダムに生成された番号を追加する場所、それがself.terrarecord[each_list[0].replace('.', '')] = {
を言う:あなたはそれと同じを使用しているループの中で見ることができるように
"key123" { # <-- This is the key that needs a random number
"id": "id",
"name": "key.co.uk",
"type": "SOA",
"records": ["1234 etc"]
}
をdata
リスト内のデータに複数のキーを設定する必要があります。最初のものはユニークである必要があります。なぜループスルーするときに整数を追加する必要があるのですか。
これは意味があると思います。説明するのは非常に難しいです。
おかげで、このようなものについてはどのように
「self.data」には何がありますか? 'each_list'の構成は何ですか? – depperm
申し訳ありませんが、例が追加されました。 –
self.dataの 'internal'リストを代わりに 'namedtuple'sに変更することが1つ改善されるかもしれません。あるいは、クラスをフルクラスに昇格させてから、そのクラスのメソッドにロジックの一部を実装します。 –