Yapılandırmda tanımlanan konuma bağlı olarak, dikdörtgenin bir listesinden veri ayıklamakta sorun yaşıyorum. Senaryo: Vertica tablosundan bir dict listesi alıyorum (bazı yöntem çağrısı aracılığıyla) ve bu dosyayı dosyaya yazabilmem için dosyadaki verileri (başlık olarak veri içeriği olarak anahtar) yazmam gerekiyor Başka bir amaç için sftp.Python'daki konuma göre dosyaya nasıl veri yazılır
Örnek
# data received in a list of dict
new_list = [{'Table':'A', 'Column':'C1', 'DataType':'int'},
{'Table':'A', 'Column':'C2', 'DataType':'varchar'},
{'Table': 'B', 'Column': 'C3', 'DataType': 'int'}
]
My konfigürasyon "Tablo" veri 0 ila 10 arasında başlayacak şekilde tanımlanan
, "kolon", 11 ila 25 başlar ve "Veri türü" 25 ila başlar 35 dosyada. Ayrıca, tanımlanan aralığı doldurmak için yeterli veri yoksa, belirtilen alan uzunluğuna ulaşıncaya kadar verilerden sonra boşluk ile doldurulması gerekir. Bu yüzden aşağıdaki gibi çıktı bekliyorum. Burada liste doğada dinamiktir. Biliyorum, seek()
'u kullanmam gerekiyor ama biraz kafam karıştı.
Table Column DataType
A C1 int
A C2 varchar
B C3 int
Herhangi Öneriler?
Verilerinizi bulmak için liste indekslerine güvenmek kırılgan ve savurgan. Listelerden başka bir veri formatı kullanırdım; Sözlüklerin sözlüğü ne olacak? json? Her neyse, eminim soruyu tam olarak anlıyorum. Dosya kodunuz nerede? – jDo
Benim önerim 'struct' modülünü kullanıyor olabilir ama uzun bir cevap olurdu –
Dosyayı w +' modu ile yazmak ve güncellemek için açın. İstenilen konuma ilerlemek için '()' yi arayın, ardından istenen verileri yazmak için 'yaz()' komutunu kullanın. –