簡體   English   中英

從我的SQL檢索數據並將其發送到使用python的Web服務

[英]Retrieving data from my sql and sending it to a web service using python

我試圖在Raspberry Pi 2中從MySQL檢索數據,然后使用python將數據發布到Web服務。 我可以使用python腳本從樹莓派中的MySQL檢索數據。 但是,當我嘗試將數據值傳遞給它時,我無法使用單獨的python腳本將數據發布到Web服務。 誰能告訴我我在做什么錯? 還是有其他方法可以做到這一點?

在Raspberry Pi(fetchdata.py)中從MySQL檢索數據的Python代碼:

import MySQLdb
import sys
import subprocess

db = MySQLdb.connect("localhost", "root", "1234", "tempdata")
cursor = db.cursor()
sql = "SELECT * FROM webdata"

cursor.execute(sql)
results = cursor.fetchall()
for row in results:
    ID = row[0]
    ChannelID = row[1]
    TimeStamp = row[2]
    RMSVoltage = row[3]

print "ID=%s, ChannelID=%s, TimeStamp=%s, RMSVoltage=%s" % (ID, ChannelID, TimeStamp, RMSVoltage)

db.close()

我得到的輸出如下:

ID = 4,ChannelID = 43,TimeStamp = 56,RMSVoltage = 78

這是我發布到Web服務(sendjson.py)的python代碼:

import sys
import json
import pprint
import requests
import subprocess
import fetchdata #name of python script that retrieves data from MySQL in RPi

url = 'http://192.168.1.101/TestWebsite/api/SecondlyReadingDatas'
query = {'ID': 'fetchdata.ID, 'ChannelID': fetchdata.ChannelID, 'TimeStamp': fetchdata.TimeStamp', 'RMSVoltage': 'fetchdata.RMSVoltage'}

headers = {'Content-Type': 'application/json'}
r = requests.post(url, headers=headers, data=json.dumps(query))
print(r.text)

這是我得到的輸出:

ID = 4,ChannelID = 43,TimeStamp = 56,RMSVoltage = 78

{“消息”:請求無效。“,” ModelState“:{” secondlyReading.ID“ [”發生錯誤。“]”,secondReading.ChannelID“ [”發生錯誤。“],” secondaryReading。 TimeStamp“ [”發生錯誤。“],” secondlyReading.RMSVoltage“ [”發生錯誤。“]}}

誰能告訴我我做錯了什么? 我的網絡服務上沒有任何新數據。

問題 :所以我需要添加缺少'

,刪除不添加!
您的dict應該像這樣,我刪除了4 '

query = {'ID': fetchdata.ID, 'ChannelID': fetchdata.ChannelID, 'TimeStamp': fetchdata.TimeStamp, 'RMSVoltage': fetchdata.RMSVoltage}

如何在Python中使用字典
關於Python中的字典使用{}大括號來構造字典,使用[]方括號來對其進行索引。
每對之間用冒號:和逗號分隔鍵和值。
鍵必須加引號

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM