第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PyMongo - Python 列表到 MongoDB 數(shù)據(jù)類型的轉(zhuǎn)換

PyMongo - Python 列表到 MongoDB 數(shù)據(jù)類型的轉(zhuǎn)換

精慕HU 2023-06-27 17:33:28
我從請求中獲取字符串格式的 json 響應,如下所示:results = requests.request("POST", url, data=json.dumps(payload), headers=header).json()['product']示例輸出: print(results) - object type = <class ' list '>[{ 'id': '123456', 'product': 'XYZ', 'exp_date': '03/01/2020', 'amount': '30.5', 'qty': '1'},{ 'id': '789012', 'product': 'ABC', 'exp_date': '04/15/2020', 'amount': '22.57', 'qty': '3'},{ 'id': '56789', 'product': 'AAA', 'exp_date': '03/29/2020', 'amount': '', 'qty': ' '}]需要首先將所有這些字段轉(zhuǎn)換為特定的數(shù)據(jù)類型,然后作為文檔插入到 MongoDB 中。exp_date 到日期/時間金額為float()數(shù)量 轉(zhuǎn)int()進行數(shù)據(jù)類型轉(zhuǎn)換的有效方法是什么?正在考慮是否可能像下面這樣,還需要知道是否有任何空、空或空白字符串值,那么如何在數(shù)據(jù)類型轉(zhuǎn)換期間將其替換為某些默認值?new_result = []for i in enumerate(results):    i[exp_date] = datetime.strptime(i[exp_date],'%m/%d%Y').replace(hour=0, minute=0, second=0, microsecond=0)                         #check for empty/null/blank values and replace with default date    new_result.append(i[exp_date])for i in enumerate(results):    i[amount] = float(i[amount])   #check for empty/null/blank values and replace with 0.00    new_result.append(i[amount])for i in enumerate(results):    i[qty] = int(i[qty])           #check for empty/null/blank values and replace with 0    new_result.append(i[qty])db.collection.insert_many(new_result)新列表輸出應如下所示:print(new_result)[{ "id": "123456", "product": "XYZ", "exp_date": 2020-03-01 00:00:00, "amount": 30.5, "qty": 1},{ "id": "789012", "product": "ABC", "exp_date": 2020-04-15 00:00:00, "amount": 22.57, "qty": 3},{ "id": "56789", "product": "AAA", "exp_date": 2020-03-29 00:00:00, "amount": 0.0, "qty": 0}]
查看完整描述

1 回答

?
幕布斯7119047

TA貢獻1794條經(jīng)驗 獲得超8個贊

你可以這樣做:


import datetime


input_lst = [

{

 "id": "123456",

 "product": "XYZ",

 "exp_date": "03/01/2020",

 "amount": "30.5",

 "qty": "1"

},

{

 "id": "789012",

 "product": "ABC",

 "exp_date": "04/15/2020",

 "amount": "22.57",

 "qty": "3"

},

{

 "id": "56789",

 "product": "AAA",

 "exp_date": "03/29/2020",

 "amount": "",

 "qty": " "

}

]


output_lst = []



for dct in input_lst:

    tmp_dct = dct.copy()

    # amount - float, qty - int4

    try:

        tmp_dct['amount'] = float(dct['amount'])

    except:

        pass


    try:

        tmp_dct['qty'] = int(dct['qty'])

    except:

        pass


    try:

        tmp_dct['exp_date'] = datetime.datetime.strptime(tmp_dct['exp_date'],'%m/%d/%Y').replace(hour=0, minute=0, second=0, microsecond=0)                         #check for empty/null/blank values and replace with default date

        output_lst.append(tmp_dct)

    except:

        pass



print(output_lst)

這更有效,因為您只循環(huán)一次。


查看完整回答
反對 回復 2023-06-27
  • 1 回答
  • 0 關(guān)注
  • 167 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號