Python返回值没有引号

时间:2017-05-24 13:36:30

标签: python python-2.7 list csv

我有csv文件:

shack_imei.csv:

shack, imei
F10, "5555"

代码:

reader = csv.reader(open("shack_imei.csv", "rb"))
my_dict = dict(reader)


shack = raw_input('Enter Shack:')
print shack
def get_imei_from_entered_shack(shack):
    for key, value in my_dict.iteritems():
        if key == shack:
            return value

list = str(get_imei_from_entered_shack(shack))
print list

给了我"5555" 但我需要这样的列表结构中的这个值:

["5555"]

我尝试了很多不同的方法,最后他们都得到了额外的'""

编辑1: 新的更简单的代码:

reader = csv.reader(open("shack_imei.csv", "rb"))
my_dict = dict(reader)
shack = raw_input('Enter Shack:')
imei = my_dict[shack]
print imei

" 5555"

list(imei)给了我['"5555"'],我需要它["5555"]

4 个答案:

答案 0 :(得分:0)

您可以更改“返回”句子:

shack = raw_input('Enter Shack:')
print shack
def get_imei_from_entered_shack(shack):
    for key, value in my_dict.iteritems():
        if key == shack:
            return [str(value)]

list = get_imei_from_entered_shack(shack)
print list

答案 1 :(得分:0)

据我了解,您想要创建一个包含返回字符串的列表,您可以使用[]

list = [str(get_imei_from_entered_shack(shack))]

答案 2 :(得分:0)

此代码存在一些问题,这些问题在评论中解决的时间太长

my_dict

my_dict = dict(reader)仅在此csv是键和值的集合时才有效。如果存在重复键,则可能会出现一些问题

get_imei_from_entered_shack

为什么选择这种特殊方法,而不是只询问my_dict正确的值。即使您要求Exception要求shack不存在,也可以使用dict.get(<key>, <default>)方法

my_dict(shack, None)

与您的4行方法相同

列表

不要将变量命名为builtin s

list2中

如果您需要列表,可以[<value>]list(<value>)(除非您使用自己的变量分配替换list

答案 3 :(得分:0)

reader = csv.reader(open("shack_imei.csv", "rb"))
my_dict = dict(reader)
shack = raw_input('Enter Shack:')
imei = my_dict[shack]
imei = imei.replace('"',"")

IMEI_LIST =[]
IMEI_LIST.append(imei)
print IMEI_LIST
['5555']