Dictionary corrupt the name of the key [Python]

回眸只為那壹抹淺笑 提交于 2019-12-02 16:33:27

问题


My problem is that when I get input with accent then the dictionary stores different keyname, it replace the accented character wit a character code. I'm new here I accept every help. Thank you for your help!

#!/usr/bin/python
# -*- coding: utf-8 -*-

products={}
try:
    prodNum = int(raw_input(u"Hány terméket kíván felvenni a listába?\r\n"))
    count   = 0

    while (count < prodNum):
        prodName            = raw_input(u"Kérem üsse be a %d. termék nevét!\r\n" %(count + 1))
        encodedName = prodName.decode('utf8')
        print(encodedName)
        prodVal             = int(raw_input(u"Kérem üsse be a %d. termék darabszámát!\r\n" %(count + 1))) 

        products[encodedName]  = prodVal
        count               = count + 1
except ValueError:
    print (u"Ide egy számot kellett volna írni. :)\r\n")

print(products)

Output:
Hány terméket kíván felvenni a listába?
1
Kérem üsse be a 1. termék nevét!
Qpa Kóla
Qpa Kóla
Kérem üsse be a 1. termék darabszámát!
2
{u'Qpa K\xf3la': 2}

回答1:


Printing a container prints the representation of the contents. There is no bug, merely misplaced expectations.

>>> print u'Qpa K\xf3la'
Qpa Kóla
>>> print repr(u'Qpa K\xf3la')
u'Qpa K\xf3la'


来源:https://stackoverflow.com/questions/26188558/dictionary-corrupt-the-name-of-the-key-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!