我有一个脚本,我想从列表中删除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
和{
提前感谢您的回答。
答案 0 :(得分:3)
u''
表示法表示您正在获取unicode字符串(Official documentation)。
你可以:
data[0]['domain'].encode('utf8')
)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))