Parsing Python dictionary with multiple objects
Dave Angel
davea at davea.name
Tue Oct 14 21:57:08 EDT 2014
anuragpatibandla7 at gmail.com Wrote in message:
> I have a dictionary that looks like this:
> {"1":{"Key1":"Value1", "Key2":"Value2", "Key3":"Value3"},
> "2":{"Key1":"Value1", "Key2":"Value2", "Key3":"Value3"},
> "3":{"Key1":"Value1", "Key2":"Value2", "Key3":"Value3"},
> "4":{"Key1":"Value1", "Key2":"Value2", "Key3":"Value3"}}
>
> Now if I have 100 objects like these and I need to split them into 3 smaller dicts in a ratio 2:3:5, how could I do that?
> I tried using numpy.random.choice(), but it says it needs to be a 1-d array.
>
What have you actually tried? You haven't shown any actual code.
Look up the method dict.keys, and see how you might use that. Then
look up random.shuffle, and see what it would do. Also look up
dict.sort, since your two messages on this thread imply two
conflicting goals as to which sub dictionaries should go in which
of your buckets.
As for extracting 20% of the keys, slicing is your answer. If
there are 100 keys, 20, 30, and 50 need to be sliced
off.
Then you'll need a loop to build each result dictionary from its keys.
There are shortcuts, but it's best to learn the fundamentals first.
Try writing the code. If it doesn’t all work show us what you've
tried, and what you think is wrong. And when you get an
exception, show the whole traceback, don't just paraphrase one
of the lines.
--
DaveA
More information about the Python-list
mailing list