擅长:python、mysql、java
<p>是代码中的多个错误。首先要插入一行数据(<code>server_info</code>),这样就不需要循环了。另外,对<code>eval()</code>的调用也没有任何意义,因为该函数用于计算字符串中的Python代码,而您将字典作为参数传递给它。在</p>
<p>然后,您不应该自己引用SQL参数(例如,使用<code>"%s"</code>而不是{<cd4>})。在</p>
<p>最后,假设您已经在字典中拥有数据,使用它来为<code>execute()</code>方法提供绑定变量。在</p>
<p>我将编写如下代码:</p>
<pre><code>server_info = {'hostname': Host_name(), 'OS':OS_make(), 'RAM':mem_frmt, 'CPU':get_processor_info()}
conn = psycopg2.connect("host='10.0.0.41' dbname='serverinfo' user='dbuser'")
curs = conn.cursor()
curs.execute("""INSERT INTO servers (hostname,OS,RAM,CPU) VALUES (%(hostname)s,%(OS)s,%(RAM)s,%(CPU)s)""", server_info)
conn.commit()
</code></pre>