좋은 하루! 파이썬에서 발전기 사전 내부 반복에 대한 질문이 있습니다 :생성자 사전 내의 반복 변수
sort_dict = {select_keys: {rows: {j: item for item in self.csv_dict.values() if item.get(select_keys) == rows} for rows in keys}}
변수 j
증가는 데이터가 기록되는 vyrozhenie까지 할 필요가있다이 :
for item in self.csv_dict.values() if item.get (select_keys) == rows}
내가 파이썬에 새로 온 사람, 그래서 어리석은 질문에 사과드립니다. 나는 오랜 세월 동안이 사소한 문제를 해결하기 위해 싸웠지 만 수행해야한다. 왜냐하면이 문제가 지금 당장 필요하기 때문이다.
'CSV 가져 오기
클래스 CSV() :
street,city,zip,state,beds,baths,sq__ft,type,sale_date,price,latitude,longitude 3526 HIGH ST,SACRAMENTO,95838,CA,2,1,836,Residential,Wed May 21 00:00:00 EDT 2008,59222,38.631913,-121.434879
:
def __init__(self, file_path):
super().__init__()
self.file_path = file_path
self.csv_dict = {}
"""Данный метод парсит переданный в класс CSV файл"""
def parseeCSV(self):
print('\n')
self.getDictCSV()
print(self.getListKeysCSV())
unic_key = self.getUnicValFromCustomKeys('zip')
sort_csv = self.getCsvSortForKeys(unic_key, 'zip')
"""Данный метод создает словарь из переданного в класс CSV файла
Словарь вида {Номер строки(записи){строка(запись)}}
"""
def getDictCSV(self):
i = 0
with open(self.file_path, 'r') as csv_desctiptor:
csv_obj = csv.DictReader(csv_desctiptor)
for csv_dict in csv_obj:
self.csv_dict[i] = csv_dict
i = i + 1
del csv_desctiptor
return True
"""Данный метод возвращает все ключи из словаря self.csv_dict[0]"""
def getListKeysCSV(self):
return dict.keys(self.csv_dict[0])
"""Данный метод возвращает уникальные значения по выбранным полям"""
def getUnicValFromCustomKeys(self, keys):
i = 0
val_key = {}
while i < len(self.csv_dict):
val_key[i] = self.csv_dict[i].get(keys)
unic_val_key = set(val_key.values())
i = i + 1
return unic_val_key
def getCsvSortForKeys(self, keys, select_keys):
#sort_dict = {select_keys: {rows: '' for rows in keys}}
i = 0`
그것은 파일의 CSV 형식을 구문 분석
이 피어싱 파일 CSV를 다루는 클래스
동시에 그는 Diction 워 유형 : 예를 들어
csv_dict[key_select][key_select_val][num-element][element_csv_string]
: 사전에 csv_dict['zip']['95838'][1][3526 HIGH ST,SACRAMENTO,95838,CA,2,1,836,Residential,Wed May 21 00:00:00 EDT 2008,59222,38.631913,-121.434879
감사합니다, 나는 바보 같은 질문을 드려 죄송합니다.
무엇이'j'입니까? 'j.'는'0..n'과 같이 증가 할 것인가, 아니면 특정 증분이 있습니까? –
나는 당신의 질문을 이해하지 못하지만,''enumerate'' (https://docs.python.org/3/library/functions.html#enumerate)를 사용하여'j' 값을 생성 할 수 있습니다. –
@ SSj.Luffy J - 이것은 정수 유형의 일반적인 변수입니다. 각 반복마다 1 씩 증가시키고 값이 0이되도록 행 사전 항목을 실행하면 모든 것이 다시 시작됩니다. –