1
我有一個捲曲的POST elasticsearch做:捲曲張貼elasticsearch在python
curl -XPOST "http://localhost:9200/index/name" --data-binary "@file.json"
我怎樣才能做到這一點在Python的殼呢?基本上,因爲我需要遍歷許多json文件。我希望能夠在for循環中做到這一點。
import glob
import os
import requests
def index_data(path):
item = []
for filename in glob.glob(path):
item.append(filename[55:81]+'.json')
return item
def send_post(url, datafiles):
r = requests.post(url, data=file(datafiles,'rb').read())
data = r.text
return data
def main():
url = 'http://localhost:9200/index/name'
metpath = r'C:\pathtofiledirectory\*.json'
jsonfiles = index_data(metpath)
send_post(url, jsonfiles)
if __name__ == "__main__":
main()
我固定要做到這一點,但給我一個類型錯誤:
TypeError: coercing to Unicode: need string or buffer, list found
謝謝貼出我的代碼往上頂。我收到了一個我無法弄清楚的TypeError。 – user6754289
你需要遍歷你的'send_post'函數,看看我的編輯。您收到的TypeError意味着您將數組指定爲'requests.post'參數,它在期望字符串的位置 –
明白了,我需要在檢索文件的過程中解決一件事。感謝幫助! – user6754289