return dumps({i: None for i in v})
if isinstance(v, dict):
raws = [_byte(TagMap)]
- if not all(isinstance(k, str) for k in v.keys()):
+ keys = v.keys()
+ if not all(isinstance(k, str) for k in keys):
raise ValueError("map keys can be only strings")
- for k in sorted(v.keys(), key=LenFirstSort):
- if len(k) == 0:
- raise ValueError("map keys can not be empty")
+ keys = sorted(keys, key=LenFirstSort)
+ if (len(keys) > 0) and len(keys[0]) == 0:
+ raise ValueError("map keys can not be empty")
+ for k in keys:
raws.append(dumps(k))
raws.append(dumps(v[k]))
raws.append(_byte(TagEOC))