apache / pulsar-client-python

Apache Pulsar Python client library
https://pulsar.apache.org/
Apache License 2.0
49 stars 38 forks source link

[Bug] Nested arrays decoding not working as expected #172

Open Vincouux opened 7 months ago

Vincouux commented 7 months ago

Version

OS: Ubuntu 22.04 Python: 3.10.2 Pulsar: pulsar-client==3.2.0

Minimal reproduce step

from pulsar.schema import JsonSchema, Record, Array, String

class A(Record):
    a = String()

class B(Record):
    b = Array(Array(A()))

# Decode JSON data
json_data = '{"b": [[{"a": "hello world"}]]}'
decoded_data = JsonSchema(B).decode(json_data)

# Access the nested objects
nested_objects = decoded_data.b[0][0]
print(type(nested_objects))
print(nested_objects.a)

What did you expect to see?

<__main__.A object at 0x7fd1ecd07d00>
hello world

What did you see instead?

<class 'dict'>
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'dict' object has no attribute 'a'
Vincouux commented 7 months ago

If it's intended, can someone indicate me how to achieve my goal. If it's not intended, probably the unit test should include this. Thanks a lot !