使用Python访问Json变量时出现cx_Oracle错误

2024-10-04 03:16:51 发布

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

我是Python新手,我必须加倍努力才能获得Json变量

payload = ""
headers = {
    'Authorization': authorization,
    'cache-control': "no-cache",
    'Postman-Token': "65a104eb-1210-4eeb-880b-ceed78b21364"
    }

response = requests.request("GET", url, data=payload, headers=headers)

x = json.loads(response.text, object_hook=lambda d: namedtuple('X',    
    d.keys())(*d.values()))

for a in x:
    print(a.numeroComlink)

connection = cx_Oracle.connect('xxxxx/xxxxx@XE')
cursor = connection.cursor()
sql_insert = "insert into usu_obt_cot (usu_numclk) values (:usu_numclk)"
cursor.execute(sql_insert, {"usu_numclk": int(x.numeroComlink)})

connection.commit()
cursor.close()

正如您在上面的代码中所看到的,我在代码中间有一个打印,引用了下面的错误所说的没有属性的确切字段

Error Received

从现在起,我感谢大家的关注


Tags: 代码cachesqlresponseconnectioncursorheaderspayload
1条回答
网友
1楼 · 发布于 2024-10-04 03:16:51

Cursor.execute将只执行一个insert语句,并且x中有许多值。如果您想让它插入list“x”中的所有值,您可以在循环中执行一组单insert语句(这很简单,但可能执行得不太好)

...
sql_insert = "insert into usu_obt_cot (usu_numclk) values (:usu_numclk)"
for a in x:
    cursor.execute(sql_insert, {"usu_numclk": int(a.numeroComlink)})
...

或者您可以follow the examples in this similar question并尝试使用Cursor.executeMany进行批插入

相关问题 更多 >