2013-06-10 1 views
3

데이터 집합을 구문 분석하는 장고 명령에서 고통스러운 오류가 발생했습니다. 스크립트는 데이터를 구문 분석하고 ORM 개체를 작성한 다음 저장하려고 시도합니다. 저장할 때, 나는 다음과 같은 오류가 발생합니다 - AttributeError를 '커서'객체 내 데이터베이스가 UTF-8Django, String encodings, UTF-8 및 Issues - AttributeError : 'Cursor'객체에 '_last_executed'속성이 없습니다.

많은 도움을 얻을 수 있지 않습니다를 해결하기 위해 노력 온라인 리서치의 무리를하는 설정되어 '을 _last_executed'에는 속성이 없습니다 . 가장 가까운 것을 찾았습니다. Error: Cursor' object has no attribute '_last_executed

여기서 'fix'는 문자열에서 unicode()를 호출 한 것입니다. 어느 것이 효과가 있었는지, 내가 어 포지션과 같은 어포 스트로피로 묶일 때까지는 빠르게 넘어진다.

그래서 위의 코드는 초기 커서 문제가 인코딩과 함께 이상하다고 생각합니다. 나는이 문제를 정말로 이해할만큼 인코딩을 이해하지 못한다.

나는 encode로 놀아 보았고, 수동으로 호출을 해독했지만, 운이 없다.

이 문제를 해결하려면 어떻게해야합니까? 그것은 장고 버그와 이해 인코딩을 혼합 한 것으로 보인다.

c=urllib2.urlopen(page_url) 
soup=BeautifulSoup(c.read()) 
my_string = soup.find('title')['content'] 
my_ormObj = Foo() 
foo.title = my_string 
foo.save() 

위의 조각을 도울 수있는 일부 코드 조각은 내가 사용 흐름의 종류, 어떤 경우에는 위의 오류가 얻을 수 있습니다. my_string을 가져 와서 변경하려고하면 세 번째 단락에 나열된 문제가 발생합니다.

+0

몇 가지 코드를 게시 할 수 있습니까? 적어도 유니 코드()를 수행하는 부분. 또한, 당신의 문자열을 사용하는 인코딩은 무엇입니까? –

+0

솔직히 보여줄 코드가별로 없습니다. 나는 약간의 단편으로 위의 내용을 업데이트 하겠지만, 도움이 될지 확실하지 않다. – Steve

+1

'my_string' (힌트 :'repr()')이란 무엇인가? –

답변

1

인코딩과 관련이 있다면 데이터베이스의 인코딩과 마찬가지로 저장하기 전에 문자열을 utf-8으로 인코딩해야합니다.

foo.title = my_string.encode('utf-8') 
foo.save() 

는이 예제를 게시하기 때문에 my_string 이미 유니 코드 있다고 가정 공평 :

나는이 방법을 시도하는 것이 좋습니다 u'aunt \ 가족 구성원들 ', 저를 인도하는 당신이 그것을 읽고 생각하는 일부 오류 덤프 장고/파이썬 던져.

중요 : 전환 수는 unicode()입니다. 문자열이 ASCII가 아닌 다른 인코딩을 사용하고 있다면 해당 변환을 사용하면 오류가 발생합니다. Right single quotation mark.

난이 도움이되기를 바랍니다 : 실제로 유니 코드입니다

!

+0

응답 해 주셔서 감사합니다. 나는 이전에 말한 것을 시도해 보았고, 다시 한번 확인해 보았습니다. 내가 할 때, 나는 기묘하게 디코딩 오류가 발생한다. -UnicodeDecodeError : 'ascii'코덱은 242 위치의 바이트 0xe2를 디코딩 할 수 없다 : 서수가 아닌 범위 (128) 다른 아이디어? :) – Steve

+0

즉, my_string은 유니 코드가 아닙니다. 'xe2는 utf-8에서도 작은 따옴표이기 때문에 utf-8입니다. 코드와 정확히 같은 방식으로 문제가 발생하면 어디서 오류가 발생합니까? 선? –

+0

여기에 변환하려고했던 것을 인쇄 해 보았습니다. http://pastebin.com/rMA0hS67을보세요 – Steve

관련 문제