回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在尝试从一个有FTDI芯片的智能仪表读取数据。编写了一个简单的Python串行程序来将命令传递给meter,然后meter返回响应。仪表的数据被转换成浮点数并存储在字典中。在</p>
<p>现在我想将字典存储到DB,<strong>这里是将数据放入表中的代码。</strong></p>
<pre><code>import psycopg2
conn = psycopg2.connect(database="smartmeter", user="postgres", password="12345", host="localhost", port="5432")
cur = conn.cursor()
cur.execute('''CREATE TABLE metertable (ID SERIAL PRIMARY KEY NOT NULL,meter TEXT NOT NULL,temperature TEXT NOT NULL,freq TEXT NOT NULL,penergy TEXT NOT NULL,qenergy TEXT NOT NULL,senergy TEXT NOT NULL,cospi TEXT NOT NULL,irms TEXT NOT NULL,ppower TEXT NOT NULL,qpower TEXT NOT NULL,spower TEXT NOT NULL);''')
while 1:
data=dict[]
data={
'time':timestamp,
'meter':m0_data,
'temperature':m1_data,
'freq':m2_data,
'penergy':m3_data,
'qenergy':m6_data,
'senergy':m7_data,
'cospi':m11_data,
'irms':m15_data,
'vrms':m16_data,
'ppower':realpower,
'qpower':reactivepower,
'spower':apparentpower
}
cur.executemany ("""INSERT INTO metertable(time,meter,temperature,freq,penergy,qenergy,senergy,cospi,irms,vrms,ppower,qpower,spower) VALUES (%(time)s, %(meter)s), %(temperature)s), %(freq)s), %(penergy)s), %(qenergy)s), %(senergy)s), %(cospi)s), %(irms)s), %(vrms)s), %(ppower)s) %(qpower)s) %(spower)s)""", data)
</code></pre>
<p><strong>我遇到这样的错误</strong></p>
^{pr2}$
<p>我向数据库输入数据的方向是否正确?请推荐一些最好的方法。在</p>