将字典列表插入mongodb并删除int键

2024-05-23 22:45:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须插入一个具有这种语法的词典列表(我有超过6500个dict,如这3个):

0: {208271891: {'bra': 'Solarmax',
             'bri': 4,
             'eur': 95.4,
             'max': 1980,
             'nam': '2000S',
             'pan': {'bra': 'Sanyo',
                     'bri': 3,
                     'eff': 16,
                     'h': 861,
                     'hea': 50,
                     'mni': 1,
                     'mnm': 'free standing',
                     'n': 7,
                     'nam': 'HDE1 230',
                     'slo': 35,
                     't': -0.3,
                     'w': 1610,
                     'wp': 230},
             'pha': 1,
             'rat': 0.81,
             'wp': 1610}},

1: {208271900: {'bra': 'Solarmax',
             'bri': 4,
             'eur': 95.4,
             'max': 1980,
             'nam': '2000S',
             'pan': {'bra': 'Sanyo',
                     'bri': 3,
                     'eff': 16,
                     'h': 861,
                     'hea': -40,
                     'mni': 1,
                     'mnm': 'free standing',
                     'n': 9,
                     'nam': 'HDE1 230',
                     'slo': 30,
                     't': -0.3,
                     'w': 1610,
                     'wp': 230},
             'pha': 1,
             'rat': 1.05,
             'wp': 2070}},

 2: {208271892: {'bra': 'Solarmax',
             'bri': 4,
             'eur': 95.4,
             'max': 1980,
             'nam': '2000S',
             'pan': {'bra': 'Sanyo',
                     'bri': 3,
                     'eff': 16,
                     'h': 861,
                     'hea': 50,
                     'mni': 1,
                     'mnm': 'free standing',
                     'n': 9,
                     'nam': 'HDE1 230',
                     'slo': 30,
                     't': -0.3,
                     'w': 1610,
                     'wp': 230},
             'pha': 1,
             'rat': 1.05,
             'wp': 2070}}

我试着用流行音乐()和“del”,但出现以下错误:“TypeError:”int“object不支持项删除”。你知道吗

slMetadata = {}    

for row in metadatas: #metadatas coming from mysql

   mid = int(row['met_id'])
   slMetadata.update(mid = mid)

   bsInv = {
          mid: 
             {
             'wp' : wp,
             'bra': str(row['invbraname']),
             'bri': int(row['inm_bra_id']),
             'nam': str(row['inm_name']),
             'pha': int(row['inm_phases']),
             'max': int(row['inm_maximal_power']),
             'eur': float(row['inm_euro_efficiency']),
             'pan':
                  {
                  'n'  : int(row['inv_pan_numbers']),
                  'hea': int(row['inv_pan_heading']),
                  'slo': int(row['inv_pan_slope']),
                  'mni': int(row['inv_mnt_id']),
                  'mnm': str(row['mnt_name']),
                  'bra': str(row['panbraname']),
                  'bri': int(row['pan_bra_id']),
                  'nam': str(row['pan_name']),
                  'wp' : int(row['pan_wc']),
                  'eff': int(row['efficiency']),
                  't'  : float(row['coefficient_p']),
                  'w'  : int(row['pan_width']),
                  'h'  : int(row['pan_height'])
                  }
             }         
        }
i = 0
dictToInsert = {}
for dic in slMetadata:
    dictToInsert[i] = slMetadata[dic]
    i += 1

if len(dictToInsert) > 0:
   insertion = dbCollection.insert_many(dictToInsert)

我想将所有这些dict插入mongoDb,但我有以下错误:bson.errors.InvalidDocument文件:文档只能有字符串键,键为0。你知道吗

我完全理解并知道不能用int键插入mongoDb。但还有什么选择呢?你知道吗

谢谢。你知道吗


Tags: eurmaxpanintrowwpbrieff