struct

Laporkan masalah Lihat sumber Nightly · 8.4 · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

Objek generik dengan kolom.

Kolom struct tidak dapat ditetapkan ulang setelah struct dibuat. Dua struct sama jika memiliki kolom yang sama dan jika nilai kolom yang sesuai sama.

Anggota

struct

struct struct(**kwargs)

Membuat struct yang tidak dapat diubah menggunakan argumen kata kunci sebagai atribut. Digunakan untuk mengelompokkan beberapa nilai. Contoh:
s = struct(x = 2, y = 3)
return s.x + getattr(s, "y")  # returns 5

Parameter

Parameter Deskripsi
kwargs default adalah {}
Dictionary argumen.

to_json

string struct.to_json()

Tidak digunakan lagi. API ini sudah tidak digunakan lagi dan akan segera dihapus. Jangan mengandalkannya. Dinonaktifkan dengan ---incompatible_struct_has_no_methods. Gunakan tanda ini untuk memverifikasi bahwa kode Anda kompatibel dengan penghapusannya yang akan segera dilakukan.
Membuat string JSON dari parameter struct. Metode ini hanya berfungsi jika semua elemen struct (secara rekursif) adalah string, int, boolean, struct lain, daftar jenis ini, atau kamus dengan kunci string dan nilai jenis ini. Tanda petik dan baris baru dalam string di-escape. Contoh:
struct(key=123).to_json()
# {"key":123}

struct(key=True).to_json()
# {"key":true}

struct(key=[1, 2, 3]).to_json()
# {"key":[1,2,3]}

struct(key='text').to_json()
# {"key":"text"}

struct(key=struct(inner_key='text')).to_json()
# {"key":{"inner_key":"text"}}

struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_json()
# {"key":[{"inner_key":1},{"inner_key":2}]}

struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_json()
# {"key":{"inner_key":{"inner_inner_key":"text"}}}
.

Tidak digunakan lagi: sebagai gantinya, gunakan json.encode(x) atau json.encode_indent(x), yang berfungsi untuk nilai selain struct dan tidak mencemari namespace kolom struct.

to_proto

string struct.to_proto()

Tidak digunakan lagi. API ini sudah tidak digunakan lagi dan akan segera dihapus. Jangan mengandalkannya. Dinonaktifkan dengan ---incompatible_struct_has_no_methods. Gunakan tanda ini untuk memverifikasi bahwa kode Anda kompatibel dengan penghapusannya yang akan segera dilakukan.
Membuat pesan teks dari parameter struct. Metode ini hanya berfungsi jika semua elemen struct (secara rekursif) adalah string, int, boolean, struct atau dict lain, atau daftar jenis ini. Tanda petik dan baris baru dalam string di-escape. Kunci struct diiterasi dalam urutan yang diurutkan. Contoh:
struct(key=123).to_proto()
# key: 123

struct(key=True).to_proto()
# key: true

struct(key=[1, 2, 3]).to_proto()
# key: 1
# key: 2
# key: 3

struct(key='text').to_proto()
# key: "text"

struct(key=struct(inner_key='text')).to_proto()
# key {
#   inner_key: "text"
# }

struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_proto()
# key {
#   inner_key: 1
# }
# key {
#   inner_key: 2
# }

struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_proto()
# key {
#    inner_key {
#     inner_inner_key: "text"
#   }
# }

struct(foo={4: 3, 2: 1}).to_proto()
# foo: {
#   key: 4
#   value: 3
# }
# foo: {
#   key: 2
#   value: 1
# }

Tidak digunakan lagi: gunakan proto.encode_text(x) sebagai gantinya.