2015-09-07 5 views
6

जब मैं अपने अजगर कोड चलाने के लिए, मैं निम्नलिखित त्रुटियाँ मिलती है:'यूसीएस -2' कोडेक स्थिति में वर्ण एन्कोड नहीं कर सकते हैं 1050-1050

x = g.request('search', {'q' : 'TaylorSwift', 'type' : 'page', 'limit' : 100})['data'][0]['id'] 

# GET ALL STATUS POST ON PARTICULAR PAGE(X=PAGE ID) 
for x1 in g.get_connections(x, 'feed')['data']: 
    print (x1) 
    for x2 in x1: 
     print (x2) 
     if(x2[1]=='status'): 
      x2['message'] 
:

File "E:\python343\crawler.py", line 31, in <module> 
    print (x1) 
    File "E:\python343\lib\idlelib\PyShell.py", line 1347, in write 
    return self.shell.write(s, self.tags) 
UnicodeEncodeError: 'UCS-2' codec can't encode characters in position 1050-1050: Non-BMP character not supported in Tk 

यहाँ मेरी कोड है

मैं इसे कैसे ठीक कर सकता हूं?

+0

यदि आपको गैर-बीएमपी यूनिकोड वर्ण देखने की आवश्यकता है; आप पर्यावरण में पाइथन को अंतःक्रियात्मक रूप से चला सकते हैं जो उन्हें दिखा सकता है उदा।, ConEmu कंसोल या एक वेब ब्राउज़र में। [Ipython नोटबुक] का प्रयास करें (http://ipython.org/notebook.html)। – jfs

उत्तर

17

आपके डेटा में Basic Multilingual Plane के बाहर वर्ण हैं। उदाहरण के लिए इमोजी, बीएमपी के बाहर हैं, और आईडीएलई, टीके द्वारा उपयोग की जाने वाली विंडो प्रणाली ऐसे पात्रों को संभाल नहीं सकती है।

आप एक translation table इस्तेमाल कर सकते हैं replacement character को बीएमपी के बाहर सब कुछ मैप करने के लिए:

import sys 
non_bmp_map = dict.fromkeys(range(0x10000, sys.maxunicode + 1), 0xfffd) 
print(x.translate(non_bmp_map)) 

non_bmp_map बीएमपी के बाहर सभी कोड पॉइंट्स नक्शे (0xFFFF के अलावा कोई कोडपॉइंट अधिक है, सब highest Unicode codepoint your Python version can handle के लिए रास्ता) U+FFFD REPLACEMENT CHARACTER:

>>> print('This works! \U0001F44D') 
This works! 
>>> print('This works! \U0001F44D'.translate(non_bmp_map)) 
This works! � 
+0

धन्यवाद, लेकिन इन्हें जोड़ने के बाद, नई त्रुटि दिखाती है: प्रिंट (x1.translate (non_bmp_map)) विशेषताएँ त्रुटि: 'dict' ऑब्जेक्ट में कोई विशेषता नहीं है 'अनुवाद', तो यह कैसे करें ?? – Andi

+1

@Andi: 'x1' एक स्ट्रिंग नहीं है, फिर, लेकिन एक शब्दकोश। आप उस मामले में 'str (x1) .translate (non_bmp_map)' कर सकते हैं। –

+0

यह काम करता है, बहुत बहुत धन्यवाद। – Andi

संबंधित मुद्दे

 संबंधित मुद्दे