gpt4 book ai didi

python - 使用 urllib2 将 solr curl updateJSON 语法转换为 python

转载 作者:行者123 更新时间:2023-11-28 22:56:32 24 4
gpt4 key购买 nike

一直在努力学习Solr4.0,正在看他们的documentation中的JSON文档更新看起来像下面这样:

cd example/exampledocs
curl 'http://localhost:8983/solr/update/json?commit=true' --data-binary @books.json -H 'Content-type:application/json'

它工作正常,我可以在我的 solr 索引上看到更新的文档。但是,我想知道如何通过 urllib2 在 python 中使用这个 curl 命令。所以,像这样:

theurl=r"""http://localhost:8983/solr/update/json?commit=true --data-binary @books.json -H 'Content-type:application/json'"""
import urllib2
import httplib
import cookielib
...use urllib2 to post theurl

但是,这不起作用。看起来 urllib2 不识别(例如 -H 显然看起来是 curl 特定的)上面形成的 theurl。应该如何格式化 theurl 以便我可以将它与 urllib2 一起使用?

最佳答案

我会努力

import urllib2
with open('books.json', 'rb') as data_file:
my_data = data_file.read()
req = urllib2.Request(url='http://localhost:8983/solr/update/json?commit=true',
data=my_data)
req.add_header('Content-type', 'application/json')
f = urllib2.urlopen(req)
# Begin using data like the following
print f.read()

从这里您可以看出 --data-binary 参数只是发送到服务器的数据,就像在 POST 请求中一样。当该参数以@符号开头时,表示从文件中读取数据。在本例中,它是文件“books.json”。您还需要发送 header (curl-H 参数)。因此,您只需使用 header 名称及其值调用 add_header 方法即可。

希望这能让您入门。有关 urllib2 的更多信息,请访问 http://docs.python.org/2/library/urllib2.html

关于python - 使用 urllib2 将 solr curl updateJSON 语法转换为 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15460538/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com