(message)
| 564 | return doc |
| 565 | |
| 566 | def message_to_dict(message): |
| 567 | ret = {} |
| 568 | for field in message.DESCRIPTOR.fields: |
| 569 | value = getattr(message, field.name) |
| 570 | if field.label == FieldDescriptor.LABEL_REPEATED: |
| 571 | lst = [] |
| 572 | for element in value: |
| 573 | if isinstance(element, Message): |
| 574 | lst.append(message_to_dict(element)) |
| 575 | else: |
| 576 | lst.append(str(element)) |
| 577 | ret[field.name] = lst |
| 578 | elif field.type == FieldDescriptor.TYPE_MESSAGE: |
| 579 | ret[field.name] = message_to_dict(value) |
| 580 | elif field.type == FieldDescriptor.TYPE_ENUM: |
| 581 | ret[field.name] = field.enum_type.values_by_number[value].name |
| 582 | else: |
| 583 | ret[field.name] = str(value) |
| 584 | return ret |
| 585 | |
| 586 | def message_to_json_dict(message): |
| 587 | d = message_to_dict(message) |
no test coverage detected