如何将特定格式的Python字符串智能转换为Python字典?
如何将
"name=text;name2=text2;name3=text3"格式的字符串转为Python字典? 首先明确:json.loads并不适用这个场景,因为你给出的格式不是标准JSON格式——JSON要求键值对用双引号包裹、键值对之间用逗号分隔,和这种key=value;的格式不兼容,直接调用json.loads会抛出解析错误。
你当前找到的方案是可行的,它通过嵌套生成器表达式完成拆分与转换:
result = dict((a.strip(), b.strip()) for a, b in (element.split('=') for element in original_text.split(';')))
如果你的Python版本在2.7及以上,推荐用字典推导式改写,代码更简洁直观:
original_text = "name=text;name2=text2;name3=text3" result = {a.strip(): b.strip() for a, b in (elem.split('=') for elem in original_text.split(';'))}
另外,如果你需要处理值中包含=的情况(比如"name=foo=bar;age=20"),或者避免因部分元素没有=导致的报错,可以做更健壮的处理:
result = {} for elem in original_text.split(';'): if '=' in elem: # 只拆分第一个=,防止值里的=被误拆分 key, value = elem.split('=', 1) result[key.strip()] = value.strip()
内容的提问来源于stack exchange,提问作者andrew
相关产品推荐
相关产品推荐

