我收到錯誤:得到錯誤Nonetype在Python 2.7
Traceback (most recent call last):
File "<stdin>", line 9, in <module>
AttributeError: 'NoneType' object has no attribute 'get'
是不是有什麼毛病下面的腳本?我在腳本中使用get(),因爲Mongodb集合中缺少一些手機字段名稱。
樣本數據:
{
"_id": ObjectID("57e99f88b948da6c3be04366"),
"email": "[email protected]",
"phone": [
{
"type": "Mobile",
"number": "250-851-1041"
}
]}
的python腳本:
import codecs
import csv
cursor = db.users.find ({}, {'_id':1, 'email': 1, 'phone.type':1, 'phone.number':1})
with codecs.open('applicatonmethod3.csv', 'w', encoding='utf-8') as outfile:
fields = ['_id', 'email', 'phone.type', 'phone.number']
write = csv.DictWriter(outfile, fieldnames=fields)
write.writeheader()
for x in cursor:
x_id = x.get('_id')
x_email = x['email']
y = x.get('phone')
z = {'_id': x_id,
'email': x_email,
'phone.type': y.get('type'),
'phone.number': y.get('number')}
write.writerow(z)
請有人能幫助我。
運行它通過調試器或打印的東西。對於初學者來說,只需在for循環中使用print(x)。 –
錯誤意味着'x'是'None',這意味着'cursor'包含'None'。找出爲什麼發生。 – kindall
我檢查了一些行中沒有電話字段名稱的集合中的數據。這就是爲什麼我使用get()來跳過它們。謝謝 – user7070824