pulsar-client-python icon indicating copy to clipboard operation
pulsar-client-python copied to clipboard

[Bug] Nested arrays decoding not working as expected

Open Vincouux opened this issue 1 year ago • 1 comments
trafficstars

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 avatar Dec 11 '23 08:12 Vincouux

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 !

Vincouux avatar Dec 11 '23 08:12 Vincouux