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

Python:删除键字符串外的撇号,python,Python,有没有其他方法可以删除键字符串外的撇号?例如,“value”只能是字典中的值。我尝试了replace()函数,但什么也没发生 resultSet = [{'name':'Taylor Swift','key':'hui7'}, {'name':'Lady Gaga','key':'bu5u'}] emplist = [] for emp in resultSet: value = "value" empdict = { value.replace("'",""): e

有没有其他方法可以删除键字符串外的撇号?例如,
“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'}]
在修改了Yaroslav的解决方案后,我得到了预期的结果

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'}]

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

为什么要这样做

使用字典更好

如果您只需要名称:

[i['value'] for i in emplist]
它将返回:

 ['Taylor Swift', 'Lady Gaga']
此外,如果未定义变量,则会引发ValueError


如果你能说出你到底想在这里实现什么以及为什么,也许会有所帮助。

根据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)

您不应该以简单的方式处理数据吗

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

不,你不能,也不应该。一旦您对该数据执行了此类操作,其他任何操作都几乎不可能处理该数据。
key
uid
?这就是问题所在!它的目的是在如下html文件中获取它:$('.label').labelinput({source:[{value:'Taylor Swift',uid:'key:hui7'},{value:'Lady Gaga',uid:'key:bu5u'}])。我运行了你的代码,结果如下:[“{name:'Taylor Swift',key:'hui7'}”,“{name:'Lady Gaga',key:'bu5u'}”]。我只想[{value:'Taylor Swift',uid:'key:hui7'},{value:'Lady Gaga',uid:'key:bu5u'}]像DYZ那样,但我不明白他的答案是把这些行放在哪里。你可以迭代得到的字符串列表并将它们插入你的htmlI中,不需要尽可能地迭代列表,我只需要创建一个单向结果。这就是我要找的,谢谢。我使用Flask,显然是jinja2,这不是每个人都推荐的答案,只是碰巧jquery需要这样的输入。:)如果您不介意的话,我将添加一些使用Jinja2的示例。我想删除key字符串之外的撇号,请重新阅读我上面的问题。我已经阅读了,我刚才在您的评论“$('.label').labelinput({source:[{value:'Taylor Swift',uid:'key:hui7'},{value:'Lady Gaga',uid:'key:bu5u'})中谈论实用程序;”如果您想使用json库,那么json库可能比您的解决方案更高效,我建议您重新考虑您的方法,以及它的行业标准