Python:删除键字符串外的撇号

时间:2017-09-10 05:58:28

标签: python

还有其他方法可以删除关键字符串外的撇号吗?例如,'value'必须只是字典中的值。我尝试了replace()函数但没有任何反应。

resultSet = [{'name':'Taylor Swift','key':'hui7'}, {'name':'Lady Gaga','key':'bu5u'}]

emplist = []

for emp in resultSet:
    value = "value"
    empdict = {
    value.replace("'",""): emp['name'],
'uid'.replace("'", ""): 'key:' + emp['key']}
    emplist.append(empdict)

print(emplist)
>> [{'value': 'Taylor Swift', 'uid': 'key:hui7'}, {'value': 'Lady Gaga', 'uid': 'key:bu5u'}]

预期结果

print(emplist)
>> [{value: 'Taylor Swift', uid: 'key:hui7'}, {value: 'Lady Gaga', uid: 'key:bu5u'}]

在我修改了雅罗斯拉夫的解决方案后,我得到了预期的结果。

resultSet = [{'name':'Taylor Swift','key_fk':'hui7'},{'name':'Lady Gaga','key_fk':'bu5u'}]

loop = ', '.join("{value: '{}', uid: 'key: {}'}".format(item['name'], item['key_fk']) for item in resultSet)

result = '[' + loop + ']'
print(result)
>> [{value: 'Taylor Swift', uid: 'key: hui7'}, {value: 'Lady Gaga', uid: 'key: bu5u'}]

4 个答案:

答案 0 :(得分:0)

没有办法,因为'表示它是String。所以它实际上并不存在。例如,如果您有'value',则其中第一个字符为v,最后一个字符为eReplace()不起作用,因为它只替换字符串中存在的内容,但由于'不存在于字符串中,因此无需替换。

答案 1 :(得分:0)

你为什么要这样?

字典最好与之合作。

如果您只想要这个名字:

[i['value'] for i in emplist]

它将返回:

 ['Taylor Swift', 'Lady Gaga']

此外,如果未定义变量,则会引发ValueError。

如果你说到你想要在这里实现什么目标,为什么会这样做呢?

答案 2 :(得分:0)

依靠Jom的评论提问,我假设跟随伪代码段可以解决问题:

resultSet = [
    {
        'name': 'Taylor Swift',
        'key': 'hui7'
    }, {
        'name': 'Lady Gaga',
        'key': 'bu5u'
    }
]

result = []

for item in resultSet:
    result.append(
        "{%s}" % ', '.join(
            ["{0}: '{1}'".format(key, value) for key, value in item.items()]
        )
    )

print(result)

<强>更新

result = ', '.join(
        "{%s}" % ', '.join(
            ["%s: '%s'" % (key, value) for key, value in item.items()]
        ) for item in resultSet
    )

result = '[' + result + ']'
print(result)

请注意,此解决方案 pythonic。 对于你的大家,你应该使用一些模板语言(例如:jinja2)

答案 3 :(得分:0)

您不应该轻松使用数据吗?

import json
resultSet = [{'name':'Taylor Swift','key':'hui7'}, {'name':'Lady Gaga','key':'bu5u'}]
json.dumps(resultSet)