python - Counting how many specific items exist in a YAML file? -
i'm attempting find out how many "usernames" exist. there two, , can loop on users
this, feels clunky. there way how many usernames exist in user?
open('file.yaml', 'r') f: file = yaml.safe_load(f) # count number of usernames in user...?
file.yaml:
host: "example.com" timeout: 60 work: - processes: 1 users: - username: "me" - username: "notme"
if want counts specific structure:
sum([len(x["users"]) x in d["work"]])
for general solution, like:
f = open("test.yaml") d = yaml.safe_load(f) # d dict - {'host': 'example.com', 'work': [{'processes': 1, 'users': [{'username': 'me'}, {'username': 'notme'}]}], 'timeout': 60} def yaml_count(d, s): c = 0 if isinstance(d, dict): k, v in d.iteritems(): if k == s: c += 1 c += yaml_count(v, s) elif isinstance(d, list): l in d: c += yaml_count(l, s) return c yaml_count(d, "username") # returns 2
Comments
Post a Comment