删除你'来自mongodb列表

时间:2016-12-22 13:14:14

标签: python mongodb

我有一个脚本,我想从列表中删除u'domain'u

from pymongo import MongoClient


client = MongoClient()
db = client.domains
collection = db.domain
find_document = collection.find({},{'domain': 1, '_id':0})

data = list(find_document.limit(2))

{myIds.push(myDoc.domain.str)})
print (data)

结果是:

[{u'domain': u'allegacyhsa.org'}, {u'domain': u'americanhelpinghands.org'}]

我想只打印像:

这样的域名
['allegacyhsa.org','americanhelpinghands.org']

没有u{

提前感谢您的回答。

2 个答案:

答案 0 :(得分:3)

u''表示法表示您正在获取unicode字符串(Official documentation)。 你可以:

  • 在打印时选择编码(即:data[0]['domain'].encode('utf8')
  • 与json作弊:print(json.dumps(data, indent=2))

来自pymongo doc:

  

MongoDB以BSON格式存储数据。 BSON字符串是UTF-8编码的,因此PyMongo必须确保它存储的任何字符串仅包含有效的UTF-8数据。常规字符串()是>验证和存储不变。 Unicode字符串()首先编码为UTF-8。 >我们的示例字符串在Python shell中表示为u'Mike'而不是'Mike'的原因是PyMongo将每个BSON字符串解码为Python unicode字符串,而不是常规str。"

要仅检索域,请将数据转换为域列表,如下所示:

domain_list = [datum.get('domain') for datum in data]

print(', '.joint(domain_list))
# prints: allegacyhsa.org, americanhelpinghands.org

print(', '.joint('%r' % d for d in domain_list))
# prints: "allegacyhsa.org", "americanhelpinghands.org"

答案 1 :(得分:0)

您的问题是提取域值,而不是“删除u”。 这个问题很容易回答:

domains = [d['domain'] for d in data]

如果您现在要将其格式化以进行打印,则可以使用join

print(', '.join(domains))