0
我正在開發一個項目,我想通過Web應用程序獲取一些用戶輸入,並將該數據發送到雲數據庫。我使用python的使用case.Below是示例代碼::將數據插入雲數據庫時的問題
import requests
import json
dict_key ={}
key = frozenset(dict_key.items())
doc={
{
"_ID":"1",
"COORD1":"1,1",
"COORD2":"1,2",
"COORD3":"2,1",
"COORD4":"2,2",
"AREA":"1",
"ONAME":"abc",
"STYPE":"black",
"CROPNAME":"paddy",
"CROPPHASE":"initial",
"CROPSTARTDATE":"01-01-2017",
"CROPTYPE":"temp",
"CROPTITLE":"rice",
"HREADYDATE":"06-03-2017",
"CROPPRICE":"1000",
"WATERRQ":"1000",
"WATERSRC":"borewell"
}
}
auth = ('uid', 'pwd')
headers = {'Content-type': 'application/json'}
post_url = "server_IP".format(auth[0])
req = requests.put(post_url, auth=auth,headers=headers, data=json.dumps(doc))
#req = requests.get(post_url, auth=auth)
print json.dumps(req.json(), indent=1)
當我運行的代碼,我歌廳下面的錯誤::
"WATERSRC":"borewell"
TypeError: unhashable type: 'dict'
我搜索了一下,發現下面stackflow鏈接作爲一個潛在的分辨率
http://stackoverflow.com/questions/13264511/typeerror-unhashable-type-dict
它說,「要使用字典,因爲你需要把它變成的東西,可以首先散列的關鍵。如果字典你想關鍵在於使用只有不可變的值,你可以創建它像這樣的哈希的表示:
key = frozenset(dict_key.items())"
我有如下疑問::
1)我在我上面的代碼中使用它嘗試過,但我不知道是否我已經用它正確。
2)要將數據放入雲數據庫,我使用Python模塊「請求」。在代碼中,我使用下面的線把數據在DB:
req = requests.put(post_url, auth=auth,headers=headers, data=json.dumps(doc))
但我得到以下錯誤:
"reason": "Only GET,HEAD,POST allowed"
我搜索上爲好,而且我發現IBM關於它的BLuemix文檔如下
https://console.ng.bluemix.net/docs/services/Cloudant/basics/index.html#cloudant-basics
當我提到文檔時,我可以說我正在使用正確的選項。但可能是我錯了。