还有其他方法可以删除关键字符串外的撇号吗?例如,'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'}]
答案 0 :(得分:0)
没有办法,因为'
表示它是String
。所以它实际上并不存在。例如,如果您有'value'
,则其中第一个字符为v
,最后一个字符为e
。 Replace()
不起作用,因为它只替换字符串中存在的内容,但由于'
不存在于字符串中,因此无需替换。
答案 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)