ImportError: нет модуля с именем «bson.objectid» [дубликат]

Здесь я рассматриваю несколько случаев, через которые вы можете очистить концепцию

1. ArrayList<String> arr = new ArrayList<String>();
2. ArrayList<String> arr = new ArrayList();
3. ArrayList arr = new ArrayList<String>();

Случай 1

ArrayList<String> arr является ссылочной переменной ArrayList с типом String, которые ссылаются на объект ArralyList типа String. Это означает, что он может содержать только объект типа String.

Строго для String не для Raw Type, поэтому он никогда не будет предупреждать.

    arr.add("hello");// alone statement will compile successfully and no warning.

    arr.add(23);  //prone to compile time error.
     //error: no suitable method found for add(int)

Случай 2

В этом случае ArrayList<String> arr является строгим типом, но ваш объект new ArrayList(); является сырым типом.

    arr.add("hello"); //alone this compile but raise the warning.
    arr.add(23);  //again prone to compile time error.
    //error: no suitable method found for add(int)

здесь arr является строгим типом. Таким образом, он будет поднимать ошибку времени компиляции при добавлении integer.

Предупреждение: - Объект типа Raw ссылается на тип Strict Referenced Variable ArrayList.

Случай 3

В этом случае ArrayList arr является сырым типом, но ваш Object new ArrayList<String>(); является строгим типом.

    arr.add("hello");  
    arr.add(23);  //compiles fine but raise the warning.

Он добавит в него любой тип объекта, потому что arr является сырым типом.

Внимание: - A Strict Тип Объект ссылается на a raw тип, на который ссылается переменная.

11
задан Nicolas Cortot 26 December 2013 в 13:35
поделиться

4 ответа

Я столкнулся с чем-то похожим, для меня проблема была в этой строке:

from pymongo.objectid import ObjectId

Вызов, похоже, работает в версиях PyMongo & lt; 2.2

В pymongo 2.2 вызов для импорта objectid:

from bson.objectid import ObjectId
44
ответ дан Vlad 22 August 2018 в 03:27
поделиться

Я попытался установить bson с pip напрямую. Удалите и установите pymongo вместо этого, и ошибка не появилась снова.

1
ответ дан David Anderton 22 August 2018 в 03:27
поделиться

Похоже, что они уже знают (см. этот запрос на растяжение ), но никто не создал запрос на растяжение против ветви разработки. Вы можете попробовать исправить это и отправить новый запрос на pull.

2
ответ дан Dominic Rodger 22 August 2018 в 03:27
поделиться

Я на Python3 (в 2017 году) и обнаружил, что следующие работы:

from pymongo import MongoClient
from bson import ObjectId
0
ответ дан Shane Reustle 22 August 2018 в 03:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: