Python 在单引号中返回 json 响应而不是双引号 (Elasticsearch API)
Python is returning json response in single quotes not double (Elasticsearch API)
我正在使用 python 中的 Elasticsearch
库来查询 elasticsearch 服务器,如下所示:
query = {
"query":{
"match_all":{}
}
}
es = Elasticsearch('localhost:9200')
res = es.search(index='myindex', body=query)
with open('response.json', 'w') as out:
out.write(res)
# json.dump(res, out) also gives the same result
我保存到文件的输出格式为
{
'key':'value',
'key2': {
'key3' : 'value2'
}
}
注意这里的单引号。我知道我可以做一个简单的查找和替换或使用 sed
将单引号更改为双引号,但是,我想知道为什么在终端使用 curl
时会发生这种情况,但情况并非如此。
我希望以适当的 json
格式转储输出
Python 字典对象不一定自动采用 json 格式。可以通过在如下响应中使用 json.dumps()
来解决上述问题:
query = {
"query":{
"match_all":{}
}
}
es = Elasticsearch('localhost:9200')
res = es.search(index='myindex', body=query)
with open('response.json', 'w') as out:
out.write(json.dumps(res))
这会将 res
转换为 json
格式,如下所示:
{
"key":"value",
"key2": {
"key3" : "value2"
}
}
我正在使用 python 中的 Elasticsearch
库来查询 elasticsearch 服务器,如下所示:
query = {
"query":{
"match_all":{}
}
}
es = Elasticsearch('localhost:9200')
res = es.search(index='myindex', body=query)
with open('response.json', 'w') as out:
out.write(res)
# json.dump(res, out) also gives the same result
我保存到文件的输出格式为
{
'key':'value',
'key2': {
'key3' : 'value2'
}
}
注意这里的单引号。我知道我可以做一个简单的查找和替换或使用 sed
将单引号更改为双引号,但是,我想知道为什么在终端使用 curl
时会发生这种情况,但情况并非如此。
我希望以适当的 json
格式转储输出
Python 字典对象不一定自动采用 json 格式。可以通过在如下响应中使用 json.dumps()
来解决上述问题:
query = {
"query":{
"match_all":{}
}
}
es = Elasticsearch('localhost:9200')
res = es.search(index='myindex', body=query)
with open('response.json', 'w') as out:
out.write(json.dumps(res))
这会将 res
转换为 json
格式,如下所示:
{
"key":"value",
"key2": {
"key3" : "value2"
}
}