使用以下代码我从API中提取以下字典:
for cv_ver in cv_versions_dic['results']:
rhel_ver = cv_ver['id']
cv_name = cv_ver['name']
if qq_cv(cv_name):
cv_name = cv_ver['name']
#print(cv_name)
cv_ver_dic.update({rhel_ver: cv_name})
print(cv_ver_dic)
输出:
{327: 'RHEL 6 64-bit 1.0', 355: 'RHEL 5 64-bit 4.0'}
还有更多字典值,只发布一个样本。
我想从每个值中删除最后一个数字。即:
1.0
中移除并离开'RHEL 6 64-bit'
4.0
中移除并离开'RHEL 5 64-bit'
答案 0 :(得分:2)
类似的东西:
cv_name = ' '.join(cv_ver['name'].split(' ')[:-1])
应该这样做......
说明:
首先,我们按空格字符分割字符串 - cv_ver['name'].split(' ')
返回除最后一个元素之外的所有元素 - [:-1]
最后,将这些列表元素与空格字符联系起来 - ' '.join()
作为MSeifert pointed out,替代方案可以是rsplit()
的版本:
cv_name = cv_ver['name'].rsplit(' ', 1)[0]
答案 1 :(得分:1)
您可以对类似
这样的字符串的值使用列表推导for cv_ver in cv_versions_dic['results']:
cv_ver_dic.update({cv_ver['id']:cv_ver['name'][:-3].strip()})
print(cv_ver_dic)
现在这将通过从值中删除最后三个字符来执行列表理解,如果您想要删除更多值,只需增加no。
所以现在这会产生
{327: 'RHEL 6 64-bit', 355: 'RHEL 5 64-bit'}