python - курсор не записывает в список, используя ввод из dict - PullRequest
1 голос
/ 11 апреля 2020

У меня есть словарь, в котором каждый ключ содержит список значений. Я хочу, чтобы 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).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...