다음과 같은 (비교적 간단한) 문제로 고민하고 있습니다. 나는 다음과 같은 방법으로 사용하는 것을 시도하고있다Python MySQLdb는 SELECT에서 CSV 출력을위한 목록 데이터를 변환합니다.
select * from extension_recording where filename = "20091030_135711-out.wav";
+----+--------------+------+-------------------------+----------+--------+--------------------+---------------------------+--------+-----------------+------+-------+
| id | extension_id | flow | filename | filesize | unread | cr_date | callerid | length | callid | info | party |
+----+--------------+------+-------------------------+----------+--------+---------------------+---------------------------+--------+-----------------+------+-------+
| 1 | 41 | out | 20091030_135711-out.wav | 264684 | 1 | 2009-10-30 13:57:31 | Some user <01273123456> | 20 | 1256911031.5482 | | NULL |
+----+--------------+------+-------------------------+----------+--------+---------------------+---------------------------+--------+-----------------+------+-------+
: 나는 다음과 같은 데이터를 반환 MySQLdb에서 SELECT 쿼리를 사용하고있다
cur.execute ("SELECT * FROM extension_recording WHERE filename = %s;", (file))
csv_result = cur.fetchone()
csv_list.append ([csv_result])
이 파이썬 데이터 유형 목록에서 결과 :
print csv_list
(1L, 41L, 'out', '20091030_135711-out.wav', 264684L, '1', datetime.datetime(2009, 10, 30, 13, 57, 31), 'Some user <01273123456>', 20L, '1256911031.5482', '', None)
데이터를 CSV 형식으로 MySQL 데이터 형식으로 출력해야하므로 각 필드를 적절하게 변환해야합니다. 즉, id 및 extension_id 필드를 long으로 변환하지 않고 int로 변환해야합니다. 날짜를 문자열로.
1,41,'out','20091030_135711-out.wav',264684,'1','2009-10-30 13:57:31','Some user <01273123456>',20,'1256911031.5482','',None
은 내가 csv_result을 반복해야 할 수도 있음을 볼 수 있지만 나는 내 인생하는 방법을 볼 수 없습니다 :이 모든 것의 요점은이 같은 CSV 파일 뭔가 끝낼 것입니다 그것은 각 데이터 유형마다 다르게 적용됩니다.
그 유형은 일치? 내 말은, 테이블에있는 유형과 일치하는 행을 가져 와서 얻을 수있는 결과입니까? 어떤 라이브러리를 사용하여 DB에 연결하고 있습니까? – Cynical
나는 문제가 무엇인지 알지 못한다. 'csv' 모듈 만 사용하면 원하는대로 할 수 있습니다. – Iguananaut
또한 질문의 제목이 실제로 문제와 관련이있는 것 같지 않습니다. 파이썬은 당신이 선택한 쿼리에 대해 반복적으로 잘 동작하는 것처럼 보입니다.하지만 커서가'cursor.fetchone()'을 사용하고 있기 때문에 이중적이지 않습니다. – Iguananaut