如何在Python中按换行与冒号拆分长字符串并转换为字典
解决方法
你可以通过遍历分割后的列表,对每行做键值拆分,再过滤掉不需要的项,最终生成目标字典,代码如下:
metadata = """Passengerid: string Name: string sex: categorical Fare: numeric Fareclass: numeric""" dct = {} # 遍历分割后的每一行 for line in metadata.split('\n'): # 按冒号加空格分割键和值 key, value = line.split(': ') # 跳过Passengerid项,其他的加入字典 if key != 'Passengerid': dct[key] = value print(dct)
运行后输出就是你要的结果:
{'Name': 'string', 'sex': 'categorical', 'Fare': 'numeric', 'Fareclass': 'numeric'}
补充说明
- 用
split(': ')而不是split(':')是为了避免值前面多一个空格(确保分割后的value不会带开头空格)。 - 如果每行的分隔符不确定有没有空格,也可以用更兼容的写法:
这种写法只会分割一次,再用key, value = line.split(':', 1) key = key.strip() value = value.strip()strip()处理键值两边的空格,遇到行首行尾有空格的情况也能正常解析。
内容的提问来源于stack exchange,提问作者nickv1989
相关产品推荐
相关产品推荐

