2016-05-30 6 views
-2

Я пытаюсь разобрать следующий JSON с помощью pythong:строковые индексы должны быть целыми числами ошибка с JSON

{ 
    "document_tone":{ 
     "tone_categories":[ 
     { 
      "tones":[ 
       { 
        "score":0.044115, 
        "tone_id":"anger", 
        "tone_name":"Anger" 
       }, 
       { 
        "score":0.005631, 
        "tone_id":"disgust", 
        "tone_name":"Disgust" 
       }, 
       { 
        "score":0.013157, 
        "tone_id":"fear", 
        "tone_name":"Fear" 
       }, 
       { 
        "score":1.0, 
        "tone_id":"joy", 
        "tone_name":"Joy" 
       }, 
       { 
        "score":0.058781, 
        "tone_id":"sadness", 
        "tone_name":"Sadness" 
       } 
      ], 
      "category_id":"emotion_tone", 
      "category_name":"Emotion Tone" 
     }, 
     { 
      "tones":[ 
       { 
        "score":0.0, 
        "tone_id":"analytical", 
        "tone_name":"Analytical" 
       }, 
       { 
        "score":0.0, 
        "tone_id":"confident", 
        "tone_name":"Confident" 
       }, 
       { 
        "score":0.0, 
        "tone_id":"tentative", 
        "tone_name":"Tentative" 
       } 
      ], 
      "category_id":"language_tone", 
      "category_name":"Language Tone" 
     }, 
     { 
      "tones":[ 
       { 
        "score":0.0, 
        "tone_id":"openness_big5", 
        "tone_name":"Openness" 
       }, 
       { 
        "score":0.571, 
        "tone_id":"conscientiousness_big5", 
        "tone_name":"Conscientiousness" 
       }, 
       { 
        "score":0.936, 
        "tone_id":"extraversion_big5", 
        "tone_name":"Extraversion" 
       }, 
       { 
        "score":0.978, 
        "tone_id":"agreeableness_big5", 
        "tone_name":"Agreeableness" 
       }, 
       { 
        "score":0.975, 
        "tone_id":"emotional_range_big5", 
        "tone_name":"Emotional Range" 
       } 
      ], 
      "category_id":"social_tone", 
      "category_name":"Social Tone" 
     } 
     ] 
    } 
} 

и вот код, который я пытаюсь использовать следующий код, чтобы получить имя тона и оценка от json:

import json 
from watson_developer_cloud import ToneAnalyzerV3Beta 
import urllib.request 
import codecs 
reader = codecs.getreader("utf-8") 
tone_analyzer = ToneAnalyzerV3Beta(
    url='https://gateway.watsonplatform.net/tone-analyzer/api', 
    username='<username>', 
    password='<password>', 
    version='2016-02-11') 

data=json.dumps(tone_analyzer.tone(text='I am very happy'), indent=2) 
print (data) 

for cat in data['document_tone']['tone_categories']: 
    print('Category:', cat['category_name']) 
    for tone in cat['tones']: 
     print('-', tone['tone_name']) 

но продолжать работать в индексы строки ошибки должны быть целыми числами. Я попытался задать тот же вопрос в одном из моих ранних сообщений, но с этим сообщением я предоставляю несколько подробностей. Я бы очень признателен за любые материалы с этим.

Спасибо

+1

Чем вы не обновили свой предыдущий вопрос, а не создали новый? Существует ссылка «edit» после тегов в сообщении. –

+1

* «Я попытался задать тот же вопрос в одном из моих ранних сообщений (...)» * На всякий случай, когда вы не знали, вы можете [изменить] (https://stackoverflow.com/posts/37528517/ отредактируйте) свои вопросы, чтобы добавить дополнительную информацию, если это необходимо. – jDo

ответ

2
tone_analyzer.tone(text='I am very happy') 

возвращает словарь, нет необходимости использовать json модифицировать данные в любом случае, просто сделать

X = tone_analyzer.tone(text='I am very happy') 

Обратите внимание, что у вас есть уже recieved this exact answer на ваш предыдущий вопрос.

Смежные вопросы