Getting "ValueError: need more than 1 value to unpack" while trying to read a value from dictionary in python

Sum J sjsumitj at gmail.com
Thu Feb 15 13:42:01 EST 2018


Thanks Chris :)

Its working now.

Regards,
Sumit

On Thu, Feb 15, 2018 at 4:55 PM, Chris Warrick <kwpolska at gmail.com> wrote:

> On 15 February 2018 at 12:07, Sum J <sjsumitj at gmail.com> wrote:
> > Below is my code. Here I want to read the "ip address" from s
> >
> >
> >  s= '''
> >     Power On Enabled = On
> >     State: connected
> >     Radio Module: Unknown
> >     noise: -097
> >     signalStrength: -046
> >     ip address: 192.168.75.147
> >     subnet mask: 255.255.255.0
> >     IPv4 address configured by DHCP
> >     Mac Addr: ac:e2:d3:32:00:5a
> >     Mode: infrastrastructure
> >     ssid: Cloudlab
> >     Channel: 1
> >     Regulatory: World Safe
> >     Authencation: WPA2/PSK
> >     Encryption:  AES or TKIP
> >     '''
> >
> >    s = s.replace("=",":")
> >    # s = s.strip()
> >    print s
> >
> >   d = {}
> >   for i in s:
> >      key, val = i.split(":")
> >      d[key] = val.strip()
> >
> >   print d
> >   print d["ip address"]
> >
> >
> > Getting below error :
> > <module> key, val = i.split(":")
> > ValueError: need more than 1 value to unpack
> > --
> > https://mail.python.org/mailman/listinfo/python-list
>
> If you iterate over a string, you are iterating over individual
> characters. Instead, you need to split it into lines, first stripping
> whitespace (starts and ends with an empty line).
>
> s = s.strip().replace("=",":")
> print s
>
> d = {}
> for i in s.split('\n'):
>     try:
>         key, val = i.split(":")
>         d[key.strip()] = val.strip()
>     except ValueError:
>         print "no key:value pair found in", i
>
>
> (PS. please switch to Python 3)
>
> --
> Chris Warrick <https://chriswarrick.com/>
> PGP: 5EAAEA16
>



More information about the Python-list mailing list