Reputation: 569
I am using IBM watson tone analyzer an get output looking like this:
x= {
u'document_tone': {
u'tone_categories': [
{
u'category_id': u'social_tone',
u'category_name': u'Social Tone',
u'tones': [
{
u'score': 0.284871,
u'tone_id': u'openness_big5',
u'tone_name': u'Openness'},
{
u'score': 0.274523,
u'tone_id': u'conscientiousness_big5',
u'tone_name': u'Conscientiousness'},
{
u'score': 0.545545,
u'tone_id': u'extraversion_big5',
u'tone_name': u'Extraversion'},
{
u'score': 0.599657,
u'tone_id': u'agreeableness_big5',
u'tone_name': u'Agreeableness'},
{
u'score': 0.348563,
u'tone_id': u'emotional_range_big5',
u'tone_name': u'Emotional Range'}
]
}
]
}
}
If I just wanted to extract the 4 values from this how do I do it?
I want variables like Openness = 0.284871, Emotional Range = 0.348562
Upvotes: 0
Views: 146
Reputation: 18217
tones = x['document_tone']['tone_categories'][0]['tones']
kv = {tone['tone_name']: tone['score'] for tone in tones}
print kv['Openness']
print kv['Emotional Range']
Upvotes: 2
Reputation: 4086
Try this:
>>> {tone['tone_name']:tone['score'] for cat in x['document_tone']['tone_categories'] for tone in cat['tones']}
{u'Emotional Range': 0.348563, u'Openness': 0.284871, u'Extraversion': 0.545545, u'Agreeableness': 0.599657, u'Conscientiousness': 0.274523}
Upvotes: 1