亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

Python 抓取數據

Python 抓取數據

HUX布斯 2023-06-27 14:08:54
有以下代碼。執行起來非常容易,唯一的問題是,我一次輸入了11次。因此,當我執行此代碼時,它將內容復制到數據庫中 11 次。row 1row 2row 3 ...row 11這就是我嘗試輸出的內容:{    'note': '',    'money': 76682.1200000005,    'main': True,    'deleted': False,    '_id': '5e3e2bc4667b8d5fc053e9a1',    'ownerCharacter':         {            '_id': '5e3ddb08667b8d5fc052903d',            'name': 'Name'        },     'bank':         {            '_id': '5b36b968614626df322e5b75',            'imageUrl': 'urlToIMG',            'name': 'Savings Bank Paleto Bay'        },     'bankAccountType':         {            'type': 'private',            'title': '',            'interestRate': 0.01,            '_id': '5b36b968614626df322e5b76',            'name': 'Giro-Konto',            'bank': '5b36b968614626df322e5b75',            '__v': 0        },     'vban': '460907',     'pin': '1234',     '__v': 0}這是代碼:def getData():    databaseConn = dbConnect()    cursor = databaseConn.cursor()    delete = "TRUNCATE TABLE bank"    try:        cursor.execute(delete)        databaseConn.commit()    except:        print("Delete error")    money = json.loads(makeRequest("URL",  authToken, True).text)        for amount in money:                geld = str(money["money"])        person = money["ownerCharacter"]["name"]        sql = "INSERT INTO bank (menge,name) VALUES (%s,%s)"        val = (geld,person)        try:            cursor.execute(sql, val)            databaseConn.commit()        except:            print("Error Database")    dbClose(databaseConn, cursor)我只需要輸出一次,而不是連續 11 次。我究竟做錯了什么?
查看完整描述

2 回答

?
收到一只叮咚

TA貢獻1821條經驗 獲得超5個贊

您正在為“money”字典中的每個元素插入,因為它處于循環中。您需要在同一個 json 文件中循環多個帳戶嗎?如果不是,則不需要循環


def getData():

    databaseConn = dbConnect()

    cursor = databaseConn.cursor()


    delete = "TRUNCATE TABLE bank"

    try:

        cursor.execute(delete)

        databaseConn.commit()

    except:

        print("Delete error")


    money = json.loads(makeRequest("URL",  authToken, True).text)

    

        

    geld = str(money["money"])

    person = money["ownerCharacter"]["name"]


    sql = "INSERT INTO bank (menge,name) VALUES (%s,%s)"

    val = (geld,person)

    try:

        cursor.execute(sql, val)

        databaseConn.commit()

    except:

        print("Error Database")

    dbClose(databaseConn, cursor)


查看完整回答
反對 回復 2023-06-27
?
智慧大石

TA貢獻1946條經驗 獲得超3個贊

這就是問題所在

for amount in money:

您正在迭代字典鍵。看起來你的字典里有 11 個鍵。這意味著您正在執行此操作

geld = str(money["money"])

11次。這就是您將其插入數據庫 11 次的原因。

不要執行 for 循環。只需訪問一次即可插入

geld = str(money["money"])


查看完整回答
反對 回復 2023-06-27
  • 2 回答
  • 0 關注
  • 175 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號