Hi, I'm trying to serialize a Python3 dictionary into its Avro representation but the DatumWriter says that my representation doesn't match the schema for a union field. I don't know if this is a bug or I'm doing something wrong, but this exact JSON with the avro-tools jsontofrag works flawlessly with libraries in the JVM.
The example that is failing is: import avro.io import avro.schema import io SCHEMA=""" { "namespace": "com.example", "type": "record", "name": "UnionMessage", "fields": [ { "name": "content", "type": [ { "namespace": "com.example", "type": "record", "name": "Option1", "fields": [ { "type": "int", "name": "hasAnInt" } ] }, { "namespace": "com.example", "name": "Option2", "type": "record", "fields": [ { "type": "string", "name": "hasAString" } ] } ] } ] } """ schema = avro.schema.Parse(SCHEMA) rec_writer = avro.io.DatumWriter(schema) bytes_writer = io.BytesIO() encoder = avro.io.BinaryEncoder(bytes_writer) msg = { "content": {"Option2": {"hasAString": "Hello"}}} rec_writer.write(msg, encoder) And I get back: avro.io.AvroTypeException: The datum {'content': {'Option2': {'hasAString': 'Hello'}}} is not an example of the schema { ..... Any ideas of what could be going wrong here? monsieurdrive.com