У меня есть словарь, в котором каждый ключ содержит список значений. Я хочу, чтобы l oop через объект курсора (qSPAD) искал каждое значение в элементах dict keys и записывал найденные элементы в файл csv для каждого ключа, если элемент найден.
import csv
import arcpy
import os
dict = {1:[431, 122, 761], 2:[1,5921, 314, 91, 18], 3:[16, 12], 4:[1]}
for k, v in dict.items():
name = "coQ" + str(k) + ".csv"
cPath = r"C:\Path"
coQ = os.path.join(cPath, name)
with open(coQ, mode = 'w') as company_file:
with arcpy.da.SearchCursor(qSPAD, ["SPADID", "AddressLookup"]) as rows:
for row in rows:
if row[0] in v:
company_file.write(row[0], ": ", row[1])
company_file.close()
Я хочу, чтобы значение SPADID соответствовало элементу в значениях ключа, я хочу записать SPADID и соответствующий адрес в CSV. Так что, если первые три значения в строках были 122, Адрес A; 81, адрес B; 91, адрес C
файл CSV с названием coQ1.csv
будет содержать:
SPADID: AddressLookup
122: Address A
, а затем файл CSV с именем coQ2.csv
будет содержать:
SPADID: AddressLookup
91: Address C
Однако на самом деле dict содержит 100 ключей, и я получил 100 пустых CSV-файлов. Я хотел бы посмотреть, если в qSPAD найдено значение, которое соответствует значению элементов ключа, и если это так, записывает его в CSV в формате, указанном выше для этого ключа в dict (обратите внимание, что имя CSV основано на значении ключа) , Если в qSPAD значение не найдено, для этого ключа не записывается csv (отсюда и условие if).