6

I'm trying to use the python client for elasticsearch. Here is a minimal example:

import logging
logging.basicConfig()

from elasticsearch import Elasticsearch as ES

print "Setup connection..."
es=ES(['localhost:8080'])
print "Done!"

print "Count number of users..."
print es.count(index='users')

The output is:

{u'count': 836780, u'_shards': {u'successful': 5, u'failed': 0, u'total': 5}}

I have two questions:

  1. How do I get rid of the u' (u followed by a single quote )?
  2. How can I extract the value of count? I guess I could do string manipulation, but that sounds like the wrong way.... Answer: if the output is saved to res, then res['count'] returns the number836780`.
Dror
  • 12,174
  • 21
  • 90
  • 160
  • I think it is a dictionary (of python), you should convert to json to remove 'u ' . look. https://docs.python.org/2/library/json.html – progrrammer Jul 28 '14 at 07:55
  • The `u''` tells you that the string is Unicode (see https://docs.python.org/2/howto/unicode.html). That structure is a [dictionary](https://docs.python.org/2/tutorial/datastructures.html#dictionaries), string manipulation is definitely not the easiest approach. – jonrsharpe Jul 28 '14 at 07:56

1 Answers1

4

elasticsearch.py convert json response to dictionary for python, so that it is easy to extract information.

I.e

{u'count': 836780, u'_shards': {u'successful': 5, u'failed': 0, u'total': 5}}

is python dictionary.

If you wan to have it in json structure then you can do,

json.dumps()

look more python

progrrammer
  • 4,475
  • 2
  • 30
  • 38