Как правильно разобрать список списков перед загрузкой его в mongoDB?

Как добавить список координат в базу данных MongoDB вместе с другой информацией на Python?
  • 25 августа 2024 г. 9:04
Ответы на вопрос 2
Для разбора списка списков перед загрузкой его в MongoDB, можно использовать стандартные средства Python, такие как циклы и встроенные функции. Например, если у вас есть список списков `data`, содержащий информацию о координатах и других данных, вы можете разобрать его следующим образом:

```python
import pymongo

client = pymongo.MongoClient("mongodb://localhost:27017/")
db = client["mydatabase"]
collection = db["mycollection"]

data = [[1, 2, "info1"], [3, 4, "info2"], [5, 6, "info3"]]

for item in data:
    record = {
        "latitude": item[0],
        "longitude": item[1],
        "info": item[2]
    }
    collection.insert_one(record)
```

Для добавления списка координат в базу данных MongoDB вместе с другой информацией на Python, вы можете использовать тот же подход. Например, если у вас есть список координат `coordinates` и другая информация `additional_info`, вы можете добавить их в базу данных следующим образом:

```python
import pymongo

client = pymongo.MongoClient("mongodb://localhost:27017/")
db = client["mydatabase"]
collection = db["mycollection"]

coordinates = [[1, 2], [3, 4], [5, 6]]
additional_info = ["info1", "info2", "info3"]

for i in range(len(coordinates)):
    record = {
        "latitude": coordinates[i][0],
        "longitude": coordinates[i][1],
        "info": additional_info[i]
    }
    collection.insert_one(record)
```

Таким образом, вы можете разобрать список списков перед загрузкой его в MongoDB и добавить список координат в базу данных вместе с другой информацией, используя Python.
Например так: 

Python 3.12.4 (main, Jun  6 2024, 18:26:44) [Clang 15.0.0 (clang-1500.3.9.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> initial_data = {
...     "coords": [[673, 103], [673, 104], [673, 105], [673, 104]]
... }
>>>
>>> transformed_data = {
...     "coords": [{"x": coord[0], "y": coord[1]} for coord in initial_data["coords"]]
... }
>>> transformed_data
{'coords': [{'x': 673, 'y': 103}, {'x': 673, 'y': 104}, {'x': 673, 'y': 105}, {'x': 673, 'y': 104}]}
>>>
Похожие вопросы