how to fix - error: bad escape \u at position 0
Solution 1
This is an error in Python 3.7, and an issue with Python 3.6 (but it is OK with Python 2.7).
If you use a raw string (prefixed by "r") for the replacement in re.sub
function, then the \u
is escaped. For instance, r'\u003c\1'
is like '\\u003c\\1'
: this is a string '\u'
, followed by '003c'
and \1
.
The solution is to write:
return script_escape_re.sub('\u003c\\1', s)
Quoting the documentation:
Changed in version 3.7: Unknown escapes in repl consisting of
'\'
and an ASCII letter now are errors.
Solution 2
I was facing a similar issue while trying to escape Unicode characters that have the pattern \uXXXX
. Let's take a string containing Unicode characters:
>>> text = "The \u201c\u3010\u3011\u201d in this template are used to mark the variables"
>>> text
'The “【】” in this template are used to mark the variables'
Escape the Unicode characters:
>>> text = text.encode('unicode_escape').decode('ascii')
>>> text
'The \\u201c\\u3010\\u3011\\u201d in this template are used to mark the variables'
And then replace them using re.sub(r'\\u(.){4}', '', text)
:
>>> import re
>>> re.sub(r'\\u(.){4}', '', text)
'The in this template are used to mark the variables'
Admin
Updated on January 19, 2021Comments
-
Admin over 3 years
Hello I'm trying to export a gmap html using ipywidgets in jupyter notebook but am encountering the following error: - error: bad escape \u at position 0.
I'm new to programing and could use help fixing whatever is causing this error to occur. If there is any easier way to go about exporting the html file I'm happy to change approaches.
Thanks
Here is a snippet of the code: I can add the entire thing if its helpful.
import pandas as pd import gmaps from ipywidgets.embed import embed_minimal_html from ipywidgets import IntSlider gmaps.configure(api_key='XXXX') pd.options.mode.chained_assignment = None # default='warn' file2 = '005 lat:long.csv' state2 = pd.read_csv(file2) state2 = state2.rename(columns={'Address1': 'address', 'City':'city', 'State':'state', 'Zip': 'zip'}) storenumbs = state2['Store'].str.split('#', expand=True) state2 = state2.join(storenumbs) state2 = state2.drop(['Store', 0], axis=1) state2 = state2.rename(columns={1: 'store_#'}) state2['store_#'] = state2['store_#'].astype(int) fig = gmaps.figure(center=(42.5, -71.4), map_type='TERRAIN', zoom_level=9.8) scale = 4 one_layer = (gmaps.symbol_layer(low_points_lat_long, fill_color='red', stroke_color='red', scale= scale)) two_layer = (gmaps.symbol_layer(low_med_points_lat_long, fill_color='red', stroke_color='yellow', scale= scale)) three_layer = (gmaps.symbol_layer(med_high_points_lat_long, fill_color='yellow', stroke_color='green', scale= scale)) four_layer = (gmaps.symbol_layer(high_points_lat_long, fill_color='green', stroke_color='green', scale= scale)) fig.add_layer(one_layer) fig.add_layer(two_layer) fig.add_layer(three_layer) fig.add_layer(four_layer) fig embed_minimal_html('export.html', views=[fig]
Long Form Error Bellow
) KeyError Traceback (most recent call last) ~/miniconda3/lib/python3.7/sre_parse.py in parse_template(source, pattern) 1020 try: -> 1021 this = chr(ESCAPES[this][1]) 1022 except KeyError: KeyError: '\\u' During handling of the above exception, another exception occurred: error Traceback (most recent call last) <ipython-input-7-c096ac365396> in <module> 20 21 slider = IntSlider(value=40) ---> 22 embed_minimal_html('export.html', views=[slider], title='Widgets export') ~/miniconda3/lib/python3.7/site-packages/ipywidgets/embed.py in embed_minimal_html(fp, views, title, template, **kwargs) 300 {embed_kwargs} 301 """ --> 302 snippet = embed_snippet(views, **kwargs) 303 304 values = { ~/miniconda3/lib/python3.7/site-packages/ipywidgets/embed.py in embed_snippet(views, drop_defaults, state, indent, embed_url, requirejs, cors) 266 widget_views = u'\n'.join( 267 widget_view_template.format(view_spec=escape_script(json.dumps(view_spec))) --> 268 for view_spec in data['view_specs'] 269 ) 270 ~/miniconda3/lib/python3.7/site-packages/ipywidgets/embed.py in <genexpr>(.0) 266 widget_views = u'\n'.join( 267 widget_view_template.format(view_spec=escape_script(json.dumps(view_spec))) --> 268 for view_spec in data['view_specs'] 269 ) 270 ~/miniconda3/lib/python3.7/site-packages/ipywidgets/embed.py in escape_script(s) 239 involving `<` is readable. 240 """ --> 241 return script_escape_re.sub(r'\u003c\1', s) 242 243 @doc_subst(_doc_snippets) ~/miniconda3/lib/python3.7/re.py in _subx(pattern, template) 307 def _subx(pattern, template): 308 # internal: Pattern.sub/subn implementation helper --> 309 template = _compile_repl(template, pattern) 310 if not template[0] and len(template[1]) == 1: 311 # literal replacement ~/miniconda3/lib/python3.7/re.py in _compile_repl(repl, pattern) 298 def _compile_repl(repl, pattern): 299 # internal: compile replacement pattern --> 300 return sre_parse.parse_template(repl, pattern) 301 302 def _expand(pattern, match, template): ~/miniconda3/lib/python3.7/sre_parse.py in parse_template(source, pattern) 1022 except KeyError: 1023 if c in ASCIILETTERS: -> 1024 raise s.error('bad escape %s' % this, len(this)) 1025 lappend(this) 1026 else: error: bad escape \u at position 0