python - 通过正则表达式从转换为 str 的列表中获取特定值
问题描述
我从包含以下值的 Json 文件中获取了值:
{"goodies" : ['banana : yellow', 'kiwi : green']}
还有很多,但是,所以我将该字典中的值获取到一个列表中:
mylist = [*goodies.values()]
所以我想用 str(mylist) 得到每个项目的值,用 ':' 分割,我试图把
for veggies in mylist:
fruit, color= str(veggies).split(':')
print(fruit, color)
但是它有太多的价值需要解压,那我该怎么办?因为那不是字典,并且在拆分时仍然存在我不想要的 [',如果有人知道,我无法找到?
解决方案
我假设您可能有多个值列表,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)
推荐阅读
- r - 比较两个字符串中的元素以在 R 中进行条件选择
- python - python sshtunnel not starting server given credentials
- git - 在本地看不到远程分支
- oauth-2.0 - Keycloak - 权限和政策仅在使用“评估”选项卡时有效
- python-3.x - 熊猫重组为长格式
- python - InstaPy 在 MacOs 11 上使用 Python3 失败
- authentication - 验证用户登录后,Feathers Authentication 返回哪个事件
- python - PyQt QWebEngineView 不加载任何 html
- python - 如何使用 Python Bottle 服务器将 oauth2client 身份验证 URL 从 Python 终端显示到浏览器?
- create-react-app - 如何在没有中间件或 SSR 的情况下向网站添加动态元标记