Sorry if I missed it, but could not find it in the documentation or after playing around.
from google.cloud import bigquery
import json
client = bigquery.Client()
for d in client.list_datasets():
for t in client.list_tables(d.reference):
print(t)
print(repr(t))
print(dir(t))
print(t.table_id)
print(json.dumps(t))
<google.cloud.bigquery.table.TableListItem object at 0x7f02c30b0760>
<google.cloud.bigquery.table.TableListItem object at 0x7f02c30b0760>
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_properties', 'clustering_fields', 'created', 'dataset_id', 'expires', 'friendly_name', 'from_string', 'full_table_id', 'labels', 'partition_expiration', 'partitioning_type', 'project', 'reference', 'table_id', 'table_type', 'time_partitioning', 'to_bqstorage', 'view_use_legacy_sql']
arr
Traceback (most recent call last):
File "<stdin>", line 7, in <module>
File "/usr/lib/python3.8/json/__init__.py", line 231, in dumps
return _default_encoder.encode(obj)
File "/usr/lib/python3.8/json/encoder.py", line 199, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/lib/python3.8/json/encoder.py", line 257, in iterencode
return _iterencode(o, 0)
File "/usr/lib/python3.8/json/encoder.py", line 179, in default
raise TypeError(f'Object of type {o.__class__.__name__} '
TypeError: Object of type TableListItem is not JSON serializable