首页 > 解决方案 > 通过正则表达式从转换为 str 的列表中获取特定值

问题描述

我从包含以下值的 Json 文件中获取了值:

{"goodies" : ['banana : yellow', 'kiwi : green']}

还有很多,但是,所以我将该字典中的值获取到一个列表中:

mylist = [*goodies.values()]

所以我想用 str(mylist) 得到每个项目的值,用 ':' 分割,我试图把

for veggies in mylist:
  fruit, color= str(veggies).split(':')
  print(fruit, color)

    

但是它有太多的价值需要解压,那我该怎么办?因为那不是字典,并且在拆分时仍然存在我不想要的 [',如果有人知道,我无法找到?

标签: pythonstring

解决方案


我假设您可能有多个值列表,dict这就是您采用这种方法的原因。正如所指出的,由于值是一个列表,因此该.values()方法返回一个列表列表,这很好,但您需要处理它。

您可以使用嵌套循环,也可以使用其他方法将列表连接在一起。以下是使用带有两个键的 dict 的两个示例。

goodies = {"goodies" : ['banana : yellow', 'kiwi : green'],
          "goodies2": ['apple : red','orange : orange']}
# Each list of values
for l in goodies.values():
    # Each value in list
    for veggies in l:
        fruit, color= str(veggies).split(':')
        print(fruit, color)

另一个不错的选择

from itertools import chain
# Chain all of the lists of values together
for veggies in chain.from_iterable(goodies.values()):
    fruit, color= str(veggies).split(':')
    print(fruit, color)

推荐阅读