multiline_str = '''
"key0": "value0",
"key1": "value1",
"key2": "value2",
'''
lines = multiline_str.strip().split('\n')
lines = [line.rstrip(', ') for line in lines]
pairs = [line.split(': ') for line in lines]
keys = [pair[0].strip('"') for pair in pairs]
values = [pair[1].strip('"') for pair in pairs]
print(keys[0])
print(values[0])
4条答案
按热度按时间5us2dqdw1#
你可以这样做:
结果:
bybem2ql2#
假设字符串看起来是粗糙的JSON/Python dict格式,那么可以使用下面的代码将键和值读入各个列表,只需要 * 最少 * 的字符串操作。
输出:
如果不可能(或者很麻烦)删除尾部逗号,那么
ast
库可以提供帮助,只需将json.loads(s_)
调用替换为ast.literal_eval(s_)
,尾部逗号就不再是问题了。5vf7fwbs3#
如果你有一个很大的数据集,你可以尝试使用
re.finall()
代替传统的循环,看看这是否有帮助:r'"(.*?)"\s*:'
匹配后跟冒号的引号字符串,表示键;r':\s*"(.*?)"\s*,'
匹配冒号、引号字符串和逗号,表示值。mqkwyuun4#
通过 * dict * 构造,可以方便地为您提供单独的键和值:
您可以将它们转换为列表或继续使用口述。