首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将嵌套值嵌入数据的pymongo游标

将嵌套值嵌入数据的pymongo游标
EN

Stack Overflow用户
提问于 2022-01-06 17:11:15
回答 1查看 60关注 0票数 0

我有下面的pymongo光标:

代码语言:javascript
复制
{'_id': ObjectId('61d7088333a0edbcbdc7332f'), 'TICKET_ID': {'0': '35592159', '1': '35592159', '2': '35592159', '3': '35592159', '4': '35592159'}, 'MOIS_VENTE': {'0': '10', '1': '10', '2': '10', '3': '10', '4': '10'}, 'PRIX_NET': {'0': '1.67', '1': '1.66', '2': '7.45', '3': '5.95', '4': '1.67'}, 'FAMILLE': {'0': 'HYGIENE', '1': 'HYGIENE', '2': 'SOINS DU VISAGE', '3': 'SOINS DU VISAGE', '4': 'HYGIENE'}, 'UNIVERS': {'0': 'HYG_DOUCHE JARDINMONDE', '1': 'HYG_DOUCHE JARDINMONDE', '2': 'VIS_CJOUR Jeunes Specifique', '3': 'VIS_DEMAQ AAAR', '4': 'HYG_DOUCHE JARDINMONDE'}, 'MAILLE': {'0': 'HYG_JDM', '1': 'HYG_JDM', '2': 'VIS_JEUNE_ET_LEVRE', '3': 'VIS_AAAR_DEMAQLOTION', '4': 'HYG_JDM'}, 'LIBELLE': {'0': 'GD JDM4 PAMPLEMOUSSE FL 200ML', '1': 'GD JDM4 PAMPLEMOUSSE FL 200ML', '2': 'CR JR PARF BIO.SPE AC.SENT.50ML', '3': 'EAU MICELLAIRE 3 THES FL200ML', '4': 'GD JDM4 TIARE FL 200ML'}, 'CLI_ID': {'0': '1490281', '1': '1490281', '2': '1490281', '3': '1490281', '4': '1490281'}}

我想从上面的光标中获取以下数据:

代码语言:javascript
复制
    TICKET_ID   MOIS_VENTE  PRIX_NET    FAMILLE             UNIVERS                        MAILLE                 LIBELLE                           CLI_ID
0   35592159    10          1.67        HYGIENE             HYG_DOUCHE JARDINMONDE         HYG_JDM  GD            JDM4 PAMPLEMOUSSE FL 200ML        1490281
1   35592159    10          1.66        HYGIENE             HYG_DOUCHE JARDINMONDE         HYG_JDM  GD            JDM4 PAMPLEMOUSSE FL 200ML        1490281
2   35592159    10          7.45        SOINS DU VISAGE     VIS_CJOUR Jeunes Specifique    VIS_JEUNE_ET_LEVRE     CR JR PARF BIO.SPE AC.SENT.50ML   1490281
3   35592159    10          5.95        SOINS DU VISAGE     VIS_DEMAQ AAAR                 VIS_AAAR_DEMAQLOTION   EAU MICELLAIRE 3 THES FL200ML     1490281
4   35592159    10          1.67        HYGIENE             HYG_DOUCHE JARDINMONDE         HYG_JDM  GD            JDM4 TIARE FL 200ML               1490281

我已经试过了,结果和我预期的不一样.

代码语言:javascript
复制
fields = ['TICKET_ID', 'MOIS_VENTE', 'PRIX_NET', 'FAMILLE', 'UNIVERS', 'MAILLE', 'LIBELLE','CLI_ID']
r = pd.DataFrame(list(cursor), columns = fields)
r

提前感谢您的建议!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-06 19:41:37

由于所有数据都在一条记录中,所以默认情况下使用find_one()返回dict。然后,你可以把dict传递给熊猫,而不需要更多的选择,你的数据就会像你想要的那样构建。

代码语言:javascript
复制
import pandas as pd
from pymongo import MongoClient
# Load some test data
db = MongoClient()['mydatabase']['mycollection']
db.insert_one({'TICKET_ID': {'0': '35592159', '1': '35592159', '2': '35592159', '3': '35592159', '4': '35592159'}, 'MOIS_VENTE': {'0': '10', '1': '10', '2': '10', '3': '10', '4': '10'}, 'PRIX_NET': {'0': '1.67', '1': '1.66', '2': '7.45', '3': '5.95', '4': '1.67'}, 'FAMILLE': {'0': 'HYGIENE', '1': 'HYGIENE', '2': 'SOINS DU VISAGE', '3': 'SOINS DU VISAGE', '4': 'HYGIENE'}, 'UNIVERS': {'0': 'HYG_DOUCHE JARDINMONDE', '1': 'HYG_DOUCHE JARDINMONDE', '2': 'VIS_CJOUR Jeunes Specifique', '3': 'VIS_DEMAQ AAAR', '4': 'HYG_DOUCHE JARDINMONDE'}, 'MAILLE': {'0': 'HYG_JDM', '1': 'HYG_JDM', '2': 'VIS_JEUNE_ET_LEVRE', '3': 'VIS_AAAR_DEMAQLOTION', '4': 'HYG_JDM'}, 'LIBELLE': {'0': 'GD JDM4 PAMPLEMOUSSE FL 200ML', '1': 'GD JDM4 PAMPLEMOUSSE FL 200ML', '2': 'CR JR PARF BIO.SPE AC.SENT.50ML', '3': 'EAU MICELLAIRE 3 THES FL200ML', '4': 'GD JDM4 TIARE FL 200ML'}, 'CLI_ID': {'0': '1490281', '1': '1490281', '2': '1490281', '3': '1490281', '4': '1490281'}})
# Fetch the data from MongoDB
data = db.find_one({}, {'_id': 0})
df = pd.DataFrame(data)
# Pretty up the output
pd.options.display.max_columns = None
pd.options.display.width = None
print(df)

指纹:

代码语言:javascript
复制
  TICKET_ID MOIS_VENTE PRIX_NET          FAMILLE                      UNIVERS                MAILLE                          LIBELLE   CLI_ID
0  35592159         10     1.67          HYGIENE       HYG_DOUCHE JARDINMONDE               HYG_JDM    GD JDM4 PAMPLEMOUSSE FL 200ML  1490281
1  35592159         10     1.66          HYGIENE       HYG_DOUCHE JARDINMONDE               HYG_JDM    GD JDM4 PAMPLEMOUSSE FL 200ML  1490281
2  35592159         10     7.45  SOINS DU VISAGE  VIS_CJOUR Jeunes Specifique    VIS_JEUNE_ET_LEVRE  CR JR PARF BIO.SPE AC.SENT.50ML  1490281
3  35592159         10     5.95  SOINS DU VISAGE               VIS_DEMAQ AAAR  VIS_AAAR_DEMAQLOTION    EAU MICELLAIRE 3 THES FL200ML  1490281
4  35592159         10     1.67          HYGIENE       HYG_DOUCHE JARDINMONDE               HYG_JDM           GD JDM4 TIARE FL 200ML  1490281
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70610901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档