ElasticSearch:TypeError:预期的字符串或缓冲区?

赛基兰

我编写了一个简单的 python 脚本,将 JSON 文件放入 Elasticsearch。我想根据我从 JSON 文件中提取的 id 字段来存储它。但是当我尝试插入弹性搜索时,它会引发错误TypeError: expected string or buffer

这是我正在处理的代码...

#! /usr/bin/python

import requests
from elasticsearch import Elasticsearch
import json
es = Elasticsearch([{'host':'localhost','port':9200}])
r = requests.get('http://127.0.0.1:9200')
i = 1
if r.status_code == 200:

        with open('d1.json') as json_data:
                d = json.load(json_data)

                for i in d['tc'][0]['i]['f']['h']:
                        if i['name'] == 'm':
                                m = i['value']
                                dope=str(m)
                                print dope
                                print type(dope)
                                #print type(md5)
                                es.index(index='lab', doc_type='report',id=dope,body=json.loads(json_data))

错误日志:

44d88612fea8a8f36de82e1278abb02f
<type 'str'>
Traceback (most recent call last):
  File "elastic_insert.py", line 22, in <module>
    es.index(index='labs', doc_type='report',id=dope,body=json.loads(json_data))
  File "/usr/lib/python2.7/json/__init__.py", line 339, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.7/json/decoder.py", line 364, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
TypeError: expected string or buffer

关于如何解决此错误的任何建议。我什至尝试将 m 转换为,int但它又出现了另一个错误。

int(m)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '44d88612fea8a8f36de82e1278abb02f'

PS:ElasticSearch 服务已启动并运行。

以色列

问题与id无关。问题出在“json_data”上。它是一个文件流,因此您需要 json.load 而不是 es.index 中的 json.loads

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python TypeError:预期的字符串或缓冲区

来自分类Dev

JSON TypeError:预期的字符串或缓冲区

来自分类Dev

Pyglet-TypeError:预期的字符串或缓冲区

来自分类Dev

TypeError:预期的字符串或缓冲区 Python

来自分类Dev

Django TypeError“预期的字符串或缓冲区”

来自分类Dev

python-TypeError:预期的字符串或SQL查询上的缓冲区

来自分类Dev

malayalam中的模式匹配使TypeError:预期的字符串或缓冲区

来自分类Dev

word_tokenize TypeError:预期的字符串或缓冲区

来自分类Dev

Python2.7.11:TypeError:预期的字符串或缓冲区= re.findall

来自分类Dev

TypeError:Google App Engine的Python中预期的字符串或缓冲区

来自分类Dev

带有re和csv的Python“ TypeError:预期的字符串或缓冲区”

来自分类Dev

类型错误:预期的字符串或缓冲区

来自分类Dev

TypeError:预期的字符缓冲区对象

来自分类Dev

TypeError:预期的字符串或带有re.match和matchObj.group()的缓冲区

来自分类Dev

python2.7.8:TypeError:预期的字符串或带bs4的缓冲区并重新

来自分类Dev

使用正则表达式过滤列表时出现“ TypeError:预期的字符串或缓冲区”

来自分类Dev

TypeError:具有re.match和matchObj.group()的预期字符串或缓冲区

来自分类Dev

缓冲区到字符串?

来自分类Dev

字符串的循环缓冲区

来自分类Dev

预期的字符串或缓冲区(在re.sub中)

来自分类Dev

预期的字符串或缓冲区,date_re.match(value)django错误

来自分类Dev

使用Beautiful Soup的“预期字符串或缓冲区”错误

来自分类Dev

预期的字符串或缓冲区(在re.sub中)

来自分类Dev

预期的字符串或缓冲区:私人消息应用程序

来自分类Dev

json加载异常预期字符串或python缓冲区

来自分类Dev

Python 错误:类型错误:预期的字符串或缓冲区

来自分类Dev

类型错误:Python 中的预期字符串或缓冲区

来自分类Dev

TypeError:必须是字符串或只读字符缓冲区,而不是列表

来自分类Dev

python TypeError:参数1必须是字符串或只读字符缓冲区,而不是None

Related 相关文章

  1. 1

    Python TypeError:预期的字符串或缓冲区

  2. 2

    JSON TypeError:预期的字符串或缓冲区

  3. 3

    Pyglet-TypeError:预期的字符串或缓冲区

  4. 4

    TypeError:预期的字符串或缓冲区 Python

  5. 5

    Django TypeError“预期的字符串或缓冲区”

  6. 6

    python-TypeError:预期的字符串或SQL查询上的缓冲区

  7. 7

    malayalam中的模式匹配使TypeError:预期的字符串或缓冲区

  8. 8

    word_tokenize TypeError:预期的字符串或缓冲区

  9. 9

    Python2.7.11:TypeError:预期的字符串或缓冲区= re.findall

  10. 10

    TypeError:Google App Engine的Python中预期的字符串或缓冲区

  11. 11

    带有re和csv的Python“ TypeError:预期的字符串或缓冲区”

  12. 12

    类型错误:预期的字符串或缓冲区

  13. 13

    TypeError:预期的字符缓冲区对象

  14. 14

    TypeError:预期的字符串或带有re.match和matchObj.group()的缓冲区

  15. 15

    python2.7.8:TypeError:预期的字符串或带bs4的缓冲区并重新

  16. 16

    使用正则表达式过滤列表时出现“ TypeError:预期的字符串或缓冲区”

  17. 17

    TypeError:具有re.match和matchObj.group()的预期字符串或缓冲区

  18. 18

    缓冲区到字符串?

  19. 19

    字符串的循环缓冲区

  20. 20

    预期的字符串或缓冲区(在re.sub中)

  21. 21

    预期的字符串或缓冲区,date_re.match(value)django错误

  22. 22

    使用Beautiful Soup的“预期字符串或缓冲区”错误

  23. 23

    预期的字符串或缓冲区(在re.sub中)

  24. 24

    预期的字符串或缓冲区:私人消息应用程序

  25. 25

    json加载异常预期字符串或python缓冲区

  26. 26

    Python 错误:类型错误:预期的字符串或缓冲区

  27. 27

    类型错误:Python 中的预期字符串或缓冲区

  28. 28

    TypeError:必须是字符串或只读字符缓冲区,而不是列表

  29. 29

    python TypeError:参数1必须是字符串或只读字符缓冲区,而不是None

热门标签

归档