Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么这个数据不是python中avro模式的示例?_Python_Python 3.x_Avro - Fatal编程技术网

为什么这个数据不是python中avro模式的示例?

为什么这个数据不是python中avro模式的示例?,python,python-3.x,avro,Python,Python 3.x,Avro,使用Kafka Python在Python中解码来自Kafka的Avro消息时遇到一些问题。简而言之,我只关注使用avro包解码消息。我已经用官方avro文档中的模式和示例编写了一个测试: 我收到一个错误,数据{“name”:“Alyssa”,“favorite_number”:256,“favorite_color”:“blue”}不是模式的示例。鉴于此模式和数据直接来自Python的官方Avro文档,我做错了什么 Traceback (most recent call last): F

使用Kafka Python在Python中解码来自Kafka的Avro消息时遇到一些问题。简而言之,我只关注使用avro包解码消息。我已经用官方avro文档中的模式和示例编写了一个测试:

我收到一个错误,
数据{“name”:“Alyssa”,“favorite_number”:256,“favorite_color”:“blue”}不是模式的示例。鉴于此模式和数据直接来自Python的官方Avro文档,我做错了什么

Traceback (most recent call last):
  File "main.py", line 36, in <module>
    writer.write('{"name":"Alyssa","favorite_number":256,"favorite_color":"blue"}', encoder)
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/avro/io.py", line 979, in write
    raise AvroTypeException(self.writers_schema, datum)
avro.io.AvroTypeException: The datum {"name":"Alyssa","favorite_number":256,"favorite_color":"blue"} is not an example of the schema {
  "type": "record",
  "name": "User",
  "namespace": "example.avro",
  "fields": [
    {
      "type": "string",
      "name": "name"
    },
    {
      "type": [
        "int",
        "null"
      ],
      "name": "favorite_number"
    },
    {
      "type": [
        "string",
        "null"
      ],
      "name": "favorite_color"
    }
  ]
}
回溯(最近一次呼叫最后一次):
文件“main.py”,第36行,在
write.write(“{”name:“Alyssa”,“favorite_number:”256,“favorite_color:”blue“}”,编码器)
写入文件“/opt/virtualenvs/python3/lib/python3.8/site packages/avro/io.py”,第979行
引发AvroTypeException(self.writers\u架构、数据)
avro.io.AvroTypeException:datum{“name”:“Alyssa”,“favorite_number”:256,“favorite_color”:“blue”}不是模式的示例{
“类型”:“记录”,
“名称”:“用户”,
“名称空间”:“example.avro”,
“字段”:[
{
“类型”:“字符串”,
“名称”:“名称”
},
{
“类型”:[
“int”,
“空”
],
“姓名”:“最喜爱的号码”
},
{
“类型”:[
“字符串”,
“空”
],
“名称”:“最喜欢的颜色”
}
]
}
您当前拥有

writer.write('{"name":"Alyssa","favorite_number":256,"favorite_color":"blue"}', encoder)
因此,您提供的数据是一个字符串。如果将其更改为以下词典:

writer.write({"name":"Alyssa","favorite_number":256,"favorite_color":"blue"}, encoder)
然后它就起作用了

writer.write({"name":"Alyssa","favorite_number":256,"favorite_color":"blue"}, encoder)