Я тестирую приложение для флэша, где мне нужно публиковать некоторые пары ключевых значений, но мое флеш-приложение ожидает их в формате JSON. В командной строке я создал JSON из моих пар кВ примерно так:TypeError: строковые индексы должны быть целыми числами с флягой json
>>> import json
>>> print json.dumps({'4': 5, '6': 7}, sort_keys=True,indent=4, separators=(',', ': '))
{
"4": 5,
"6": 7
}
, когда я это в почтальона:
и отправить его в мое приложение я получаю:
TypeError: string indices must be integers
Однако если я использую:
[{
"4": 5,
"6": 7
}]
Это работает! Почему это происходит?
Вот код приложения. ошибка происходит в последней строке:
json = request.get_json(force=True) # receives request from php
for j in json:
print str(j)
test = [{'ad': j['4'], 'token':j['6']} for j in json]
Проблема заключается в 'j ['4']' где 'j' является строкой. Вместо этого попробуйте 'j [4]'. Вы понимаете, что 'j' является последним ключом в объекте JSON? Если значение 'j' равно' '4" ',' j [4] 'также выйдет из строя, но с' IndexError'. Вероятно, вы хотите 'json [0] [" 4 "]'. –