UnicodeDecodeError: ‘ascii‘ codec can‘t decode byte 0xe5 in position 0: ordinal not in range(128)

海豚精灵https://www.whhtjl.com优课GOhttps://mgo.whhtjl.com

今天我在练习mongo与python交互的时候写了以下代码:

#coding=utf-8

from pymongo import *

#获得客户端,建立链接
client=MongoClient('mongodb://py3:123@localhost:27017/py3')
#切换数据库
db=client.py3
#获取集合
stu=db.stu

#增加
#s1=stu.insert_one({'name':'张三丰'})

#修改
#stu.update_one({'name':'张三丰'},{'$set':{'name':'abc'}})

#删除
#stu.delete_one({'name':'abc'})

#查询
cursor=stu.find({'age':{'$gt':15}}).sort('_id',-1).skip(1).limit(1)
for s in cursor:
    print('姓名:%s'%(s['name']))

s2=stu.find_one()
print('第一个:%s'%s2)

cur=stu.find()
print('第一个:%s'%cur.next())
print('第二个:%s'%cur.next())
print('第三个:%s'%cur.next())

print('总数:%d'%stu.count())

运行程序出现以下错误:

经过搜寻网络上的资料,发现是ascii编码的问题,在自己程序代码前面加上以下几句,即可解决问题:

import sys
reload(sys)
sys.setdefaultencoding('utf8') 
#coding=utf-8

import sys
reload(sys)
sys.setdefaultencoding('utf8')
from pymongo import *

#获得客户端,建立链接
client=MongoClient('mongodb://py3:123@localhost:27017/py3')
#切换数据库
db=client.py3
#获取集合
stu=db.stu

#增加
#s1=stu.insert_one({'name':'张三丰'})

#修改
#stu.update_one({'name':'张三丰'},{'$set':{'name':'abc'}})

#删除
#stu.delete_one({'name':'abc'})

#查询
cursor=stu.find({'age':{'$gt':15}}).sort('_id',-1).skip(1).limit(1)
for s in cursor:
    print('姓名:%s'%(s['name']))

s2=stu.find_one()
print('第一个:%s'%s2)

cur=stu.find()
print('第一个:%s'%cur.next())
print('第二个:%s'%cur.next())
print('第三个:%s'%cur.next())

print('总数:%d'%stu.count())

再次运行程序:

大功告成!!!

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值