python
  • mysql
  • sql
  • nlp
  • 2014-09-22 3 views 1 likes 
    1

    나는 자연어 처리를 배우고있다. 예를 들어 MySQL 테이블의 칼럼에 [ "우리", "아니다", "친구", "."] 등의리스트를 저장할 필요가 있기 때문에, 분석하고자 할 때 데이터베이스에서 읽을 수 있도록 목록을 저장해야합니다. 내 코드의 부분은 다음과 같습니다Python NLP : Python 목록을 MySQL 데이터베이스에 저장하는 방법은 무엇입니까?

    tokenized_text = nltk.word_tokenize(line) 
    sql2 = 'update training_data set tokenized_essay = "{0}" where filename = "{1}"'.format(tokenized_text,res) 
    cursor.execute(sql2) 
    

    _mysql_exceptions.ProgrammingError :. (1064, '당신은 당신의 SQL 구문에 오류가있다; MySQL 서버 버전에 해당하는 설명서를 확인을

    내가 설정 한 같은 LONGTEXT. 내가 시도 JSON, 피클 도서관,하지만 tokenized_text 열이 문제가 하나의 quote.eg을 탈출하는 방법을 것 같다 는 제발 도와주세요 "없습니다!"

    답변

    1

    YOP 1.2 MySQL을 - 파이썬을 사용할 수 있습니다 .5 MySQL 파이썬 인터페이스

    MySQLdb는 널리 사용되는 Python 용 MySQL 데이터베이스 서버에 대한 인터페이스입니다. 다음은 샘플 예제는

    import MySQLdb 
    db=MySQLdb.connect(passwd="moonpie",db="thangs") 
    c=db.cursor() 
    c.executemany(
         """INSERT INTO breakfast (name, spam, eggs, sausage, price) 
         VALUES (%s, %s, %s, %s, %s)""", 
         [ 
         ("Spam and Sausage Lover's Plate", 5, 1, 8, 7.95), 
         ("Not So Much Spam Plate", 3, 2, 0, 3.95), 
         ("Don't Wany ANY SPAM! Plate", 0, 4, 3, 5.95) 
         ]) 
    

    자세한 내용입니다 : http://mysql-python.sourceforge.net/MySQLdb.html

    업데이트 :

    괜찮 아, 목록 항목을 저장하기 위해,이 예제

    def encoding(val): 
        if isinstance(val, unicode): 
         return val.encode('utf-8') 
        else: 
         return str(val) 
    
    
    for id, val in mydict.items(): 
        data = dict(reduce(lambda x, y: x+y, [v.items() for v in val]) + [('id', id)]) 
        sorted_keys = sorted(map(str, data.keys())) 
        sorted_vals = map(encoding, [v[k] for k in sorted_keys]) # sorted by keys 
        format = ', '.join(["'%s'"] * len(sorted_vals)) 
        c.execute("insert into deldictmysql 
           (%s) values (%s)" % (', '.join(sorted_keys), format), sorted_vals) 
    
    +0

    안녕하세요, 회신 해 주셔서 감사합니다. 나는 MysQLdb를 사용하고 있습니다. 그러나 제 질문에 유의하십시오. 어떻게 문자열이 아닌 MySQL에 파이썬리스트를 저장할 수 있습니까? 목록은 토큰 화 된 단어로 채워집니다. – allenwang

    +0

    @ wanglan8498 : apprppriat 조치로 스레드를 닫는 데 도움이된다면 업데이트를 확인하십시오. – user123

    +0

    빠른 답장을 보내 주셔서 감사합니다. 하지만 당신이 내가 해결하려고하는 것을 이해하지 못하는 것 같습니다. [ "We", "are not", "friends", "."]와 같은 열에 토큰 화 된 단어를 저장하려고합니다.이 목록을 업데이트 SQL 문장에 넣으면 작은 따옴표 오류가 발생했습니다 . 나는 그것을 해결하는 방법을 모른다. – allenwang

    1

    난 당신이 사용할 수 있습니다 생각 도움이 될 수 있습니다 예를 들어 결합 및 분할하거나 랩핑하거나 파싱합니다.

    foo = ["hola", "mundo"] 
    bar = ' '.join(foo) 
    print bar 
    : "hola mundo" 
    
    foo = bar.split(' ') 
    print foo 
    : ["hola", "mundo"] 
    
    관련 문제