특정 열을 추출하여 MySQLdb을 사용하여 얻은 레코드에서 그룹화하려고합니다.특정 열을 추출하고 Python 사전에서 그룹화하십시오.
나는 단지 3 열 추출 할import _mysql
cdb=_mysql.connect(host="myhost",user="root",
passwd="******",db="my_db")
qry = "select col1,col2,col3,col4,col5,col6 from mytable"
cdb.query(qry)
resultset = cdb.store_result()
records = resultset.fetch_row(0,1) # 0 - no limit, 1 - output is in dictionary form
: 기록에서 COL1, COL3 및 col4을이 세 열 (COL1의 모든 고유 한 조합을, 즉 사용하여 고유 한 값 그룹을 만들고 싶어, COL3 나는 다음 코드를 작성했습니다 , col4). 고유 한 값을 찾기 위해 set() 데이터 유형을 사용해야한다는 것을 알고 그것을 사용하려고 시도했지만 어떤 성공도 찾지 못했습니다. 그것을위한 좋은 해결책이 무엇인지 알려주십시오.
나는 데이터베이스에 수천 개의 레코드가 있습니다. 다음 고유하지 않은를 제거
def filter_unique(records, columns):
unique = set(tuple(rec[col] for col in columns) for rec in records)
return [dict(zip(columns, items)) for items in unique]
그것은 먼저 각 레코드에 대한 열 값의 튜플을 생성합니다 :이 솔루션과 함께 올라와있다
({
'col1':'data11',
'col2':'data11',
'col3':'data13',
'col4':'data14',
'col5':'data15',
'col6':'data16'
},
{
'col1':'data21',
'col2':'data21',
'col3':'data23',
'col4':'data24',
'col5':'data25',
'col6':'data26'
})
정말 좋은 솔루션 :) 많은 수의 요소에 대해 느리게 작업하지만 필자는 필자의 요구 사항에 따라 조금씩 변형 할 수있었습니다. 좋은 :) – SiMemon