У меня есть некоторые данные, хранящиеся в моей коллекции, вот пример, полученный через оболочку. (Просьба игнорировать язык текста.)Python2.7 - Как прочитать определенное поле в коллекции MongoDB
{
"_id" : ObjectId("581ab1811d41c814004f4d16"),
"created_time" : "2016-11-02T19:48:41+0000",
"message" : "Acabaram de assaltar o carro de um colega nosso em Itabaiana\nno zangue, ele é de Aracaju e foi passear em Itabaiana.Gol G6 prata 2013 placa OER-5474.\n",
"id" : "400728540046889_1107668596019543"
}
В этом случае мне нужно получить только текст, содержащийся в "message"
поле, так как мне нужно сделать несколько операций в этих текстах. Таким образом, процесс будет следующим: в моей коллекции я должен получить весь текст в поле "message"
, выполнив операции, а затем верну его "message"
в соответствующее место, а также другие его атрибуты. Мой код до сих пор:
# -*- coding: utf-8 -*-
import preprocessing
import pymongo
import json
from pymongo import MongoClient
from unicodedata import normalize
from preprocessing import PreProcessing
if __name__ == '__main__':
client = MongoClient('localhost:27017')
collection = client.facebook.dadosColetados1
try:
dbmessage = collection.find()
for text in dbmessage:
print text
except Exception, e:
print str(e)
Я не могу передать атрибут "message"
для использования в находке и, когда я использую только find()
он возвращает мне текст, не будучи в UTF-8, как:
e7\xf5es institucionais para uma seguran\xe7a p\xfablica mais integrada em todo o Estado.\n\nO secret\xe1rio destacou a import\xe2ncia da manuten\xe7\xe3o do di\xe1logo entres as institui\xe7\xf5es.
Какой был бы лучший подход к этой ситуации?
Редактировать 1: Решение, предложенное @ jcmetz21 работает.
Не могли бы вы дать нам только минимальный рабочий пример? Я быстро взглянул и пришел к выводу, что 95% этого кода не связано. Отважные молодые души могут быть вновь проснувшись и встать на задание, но ленивые усталые задницы вроде меня подумают, что было бы неплохо не удалять 95% кода, чтобы проверить его локально, если это возможно. – Torxed
какая версия python вы используете? python 3: вы можете изменять сообщения в структуру 'bytes', а затем декодировать его как« latin-1 ». который будет печатать португальские (?) символы. –
@Torxed Я сказал, что хотел бы знать, как использовать только данные, содержащиеся в поле в коллекции монго. Получив эти данные, выполните некоторые операции и верните их другим персетентам данных. Я привел пример того, как эти данные хранятся в банке, привел пример того, как я это сделал, чтобы читать и извлекать эти данные. Только я не могу вернуть один текст за раз. –