python_webservices_library icon indicating copy to clipboard operation
python_webservices_library copied to clipboard

UnicodeEncodeError: 'ascii' codec can't encode character u'\xa3'

Open SinOB opened this issue 13 years ago • 2 comments

If sugarcrm returns the following in a response

Initial 2011a customer reports contract - £6k, circa 65 credits

the following error is received

UnicodeEncodeError: 'ascii' codec can't encode character u'\xa3' in position 39: ordinal not in range(128)

Traceback (most recent call last): File "sugar_wrapper.py", line 47, in response=temp.get_products_for_account("ae6dbac6-737c-a1cc-80e8-4bf7129e7833") File "sugar_wrapper.py", line 39, in get_products_for_account results = response.get_entry_list(module, query, order_by, offset, select_fields, link_name_to_fields_array) File "/usr/local/lib/python2.7/dist-packages/sugarcrm/sugarcrm.py", line 202, in get_entry_list return self.sendRequest('get_entry_list', args) File "/usr/local/lib/python2.7/dist-packages/sugarcrm/sugarcrm.py", line 81, in sendRequest result = stripUnicode(result) File "/usr/local/lib/python2.7/dist-packages/sugarcrm/sugarcrm.py", line 370, in stripUnicode return dict( (str(key), stripUnicode(value)) for (key, value) in obj.items()) File "/usr/local/lib/python2.7/dist-packages/sugarcrm/sugarcrm.py", line 370, in return dict( (str(key), stripUnicode(value)) for (key, value) in obj.items()) File "/usr/local/lib/python2.7/dist-packages/sugarcrm/sugarcrm.py", line 372, in stripUnicode return list( stripUnicode(x) for x in obj ) File "/usr/local/lib/python2.7/dist-packages/sugarcrm/sugarcrm.py", line 372, in return list( stripUnicode(x) for x in obj ) File "/usr/local/lib/python2.7/dist-packages/sugarcrm/sugarcrm.py", line 370, in stripUnicode return dict( (str(key), stripUnicode(value)) for (key, value) in obj.items()) File "/usr/local/lib/python2.7/dist-packages/sugarcrm/sugarcrm.py", line 370, in return dict( (str(key), stripUnicode(value)) for (key, value) in obj.items()) File "/usr/local/lib/python2.7/dist-packages/sugarcrm/sugarcrm.py", line 370, in stripUnicode return dict( (str(key), stripUnicode(value)) for (key, value) in obj.items()) File "/usr/local/lib/python2.7/dist-packages/sugarcrm/sugarcrm.py", line 370, in return dict( (str(key), stripUnicode(value)) for (key, value) in obj.items()) File "/usr/local/lib/python2.7/dist-packages/sugarcrm/sugarcrm.py", line 370, in stripUnicode return dict( (str(key), stripUnicode(value)) for (key, value) in obj.items()) File "/usr/local/lib/python2.7/dist-packages/sugarcrm/sugarcrm.py", line 370, in return dict( (str(key), stripUnicode(value)) for (key, value) in obj.items()) File "/usr/local/lib/python2.7/dist-packages/sugarcrm/sugarcrm.py", line 368, in stripUnicode return str(obj) UnicodeEncodeError: 'ascii' codec can't encode character u'\xa3' in position 39: ordinal not in range(128)

SinOB avatar Nov 29 '11 12:11 SinOB

I'm running python version 2.7.1 I've found I can get around it by commenting out the following lines in sugarcrm.py def send request

80 # if sys.version_info < (2, 7, 2): 81 # result = stripUnicode(result)

SinOB avatar Nov 30 '11 13:11 SinOB

To fix this issue just use python unicode function

final_value = unicode(data, 'utf-8', 'replace')

tejastank avatar Sep 14 '12 09:09 tejastank