У меня есть запрос, который из этого кодаКак получить доступ к полю запроса
cursor = db.MCAddrPortPairs.find({'Symbol' : symbol})[:1]
print str(json.dumps({'results': list(cursor)},
default = bson.json_util.default,
indent = 4))
возвращает следующий документ:
{
"results": [
{
"MCPort": 345,
"Symbol": "EUR/USD",
"_id": {
"$oid": "56fc34e961fed32064e656b0"
},
"MCAddr": "239.0.0.222"
}
]
}
MCAddr является строкой и MCPort является внутром. Как получить доступ к полям MCAddr и MCPort в python?
EDIT 1
Если я говорю
doc = db.MCAddrPortPairs.find({'Symbol' : symbol})[:1]
symbolMCIPAddrStr = doc["MCAddr"]
symbolMCPort = doc["MCPort"]
Я получаю сообщение об ошибке:
File "mc.py", line 44, in initializeMongo
symbolMCIPAddrStr = doc["MCAddr"]
File "/home/idf/anaconda/lib/python2.7/site-packages/pymongo/cursor.py", line 531, in __getitem__
self.__check_okay_to_chain()
File "/home/idf/anaconda/lib/python2.7/site-packages/pymongo/cursor.py", line 342, in __check_okay_to_chain
raise InvalidOperation("cannot set options after executing query")
pymongo.errors.InvalidOperation: cannot set options after executing query
EDIT 2
Если вместо этого я сказать
doc = db.MCAddrPortPairs.find_one({'Symbol' : symbol})[:1]
Traceback (most recent call last):
File "mc.py", line 86, in <module>
main()
File "mc.py", line 63, in main
initializeMongo("EUR/USD")
File "mc.py", line 39, in initializeMongo
doc = db.MCAddrPortPairs.find_one({'Symbol' : symbol})[:1]
TypeError: unhashable type
Возможный дубликат [данных Python доступа в объект JSON] (http://stackoverflow.com/questions/11241583/python-accessing-data-in -json-object) –