Newbie: Convert strings in nested dict to tuples

KP kai.peters at gmail.com
Tue Dec 22 18:31:43 EST 2015


Beautiful - thanks!

On Tuesday, 22 December 2015 15:23:25 UTC-8, Peter Otten  wrote:
> KP wrote:
> 
> > I now know how to convert a string cont. coordinates to a tuple, but hwo
> > can I do this?
> > 
> > Given
> > 
> > cfg = {'canvas': ('3840', '1024'),
> >       'panel1': {'gpio': '1', 'id': '4', 'co': '0,0,1280,1024'},
> >       'panel2': {'gpio': '2', 'id': '5', 'co': '1280,0,2560,1024'},
> >       'panel3': {'gpio': '3', 'id': '6', 'co': '2560,0,3840,1024'}}
> > 
> > how can I transform cfg to
> > 
> > cfg = {'canvas': ('3840', '1024'),
> >       'panel1': {'gpio': '1', 'id': '4', 'co': ('0','0','1280','1024')},
> >       'panel2': {'gpio': '2', 'id': '5', 'co':
> >       ('1280','0','2560','1024')}, 'panel3': {'gpio': '3', 'id': '6',
> >       'co': ('2560','0','3840','1024')}}
> > 
> > Again, thanks for all help!
> 
> >>> cfg = {'canvas': ('3840', '1024'),
> ...       'panel1': {'gpio': '1', 'id': '4', 'co': '0,0,1280,1024'}, 
> ...       'panel2': {'gpio': '2', 'id': '5', 'co': '1280,0,2560,1024'},
> ...       'panel3': {'gpio': '3', 'id': '6', 'co': '2560,0,3840,1024'}}
> >>> 
> >>> for value in cfg.values():
> ...     if isinstance(value, dict):
> ...         value["co"] = tuple(value["co"].split(","))
> ... 
> >>> import pprint
> >>> pprint.pprint(cfg)
> {'canvas': ('3840', '1024'),
>  'panel1': {'co': ('0', '0', '1280', '1024'), 'gpio': '1', 'id': '4'},
>  'panel2': {'co': ('1280', '0', '2560', '1024'), 'gpio': '2', 'id': '5'},
>  'panel3': {'co': ('2560', '0', '3840', '1024'), 'gpio': '3', 'id': '6'}}




More information about the Python-list mailing list