有一个字符串: strVal = "'zhang':'123'|'li':'456'|'zhao':'789'"

有一个字符串:

    strVal = "'zhang':'123'|'li':'456'|'zhao':'789'"

    编写程序,处理该字符串,构造出字典如下:

    dictVal = {'zhang':'123', 'li':'456','zhao':'789'}

    并分行打印该字典对象的所有键值对,如下:
      'zhang':'123'
      'li':'456'
      'zhao':'789'
strVal = "'zhang':'123'|'li':'456'|'zhao':'789'"

dictVal = {i.split(':')[0]:i.split(':')[1] for i in strVal.split('|')}

for i, j in dictVal.items():
    print(f'{i}:{j}')

用exec()内置函数一行搞定:

strVal = "'zhang':'123'|'li':'456'|'zhao':'789'"
exec('dictVal={'+strVal.replace('|',',')+'}')
for i, j in dictVal.items():
    print(f"'{i}':'{j}'")

OUT:
'zhang':'123'
'li':'456'
'zhao':'789'

有帮助请采纳

strVal = "'zhang':'123'|'li':'456'|'zhao':'789'"

def strTodict(s):
    return dict([item.split(":") for item in s.split("|")])

dictVal = strTodict(strVal)

for key, val in dictVal.items():
    print("{}:{}".format(key, val))

运行结果如下:

img