За BigQuery Документация по клиенту Python Вы можете циклически перемещаться по объекту строки, как указано ниже, без указания точного имени столбца:
for row in query_job: # API request - fetches results
# Row values can be accessed by field name or index
assert row[0] == row.name == row["name"]
print(row)
Кроме того, вы всегда можете использовать значения SchemaField , как описано в этом ответе
result = ["{0} {1}".format(schema.name,schema.field_type) for schema in table.schema]
Это пример использования открытого набора данных BigQuery о том, как получить доступ к полям без указания имени поля:
from google.cloud import bigquery
from pprint import pprint
import json
client = bigquery.Client()
query = (
"SELECT state,max(gender) as gender FROM `bigquery-public-data.usa_names.usa_1910_2013` "
'GROUP BY state '
"LIMIT 10"
)
query_job = client.query(
query,
# Location must match that of the dataset(s) referenced in the query.
location="US",
) # API request - starts the query
for num, row in enumerate(query_job, start=1): # API request - fetches results
# Row values can be accessed by field name or index
# assert row[0] == row.name == row["name"]
print("{} AS {}, {} AS {}".format(row[0], query_job._query_results._properties['schema']['fields'][0]['name'], row[1], query_job._query_results._properties['schema']['fields'][1]['name']))
#print(row[0], row[1])
print(json.dumps(query_job._query_results._properties['schema']['fields'][0]['name']))
print(query_job._query_results._properties)
#pprint(vars(query_job._query_results._properties))
, который производит следующий вывод:
superQuery:bin tamirklein$ python test.py
AK AS state, M AS gender
AL AS state, M AS gender
AR AS state, M AS gender
AZ AS state, M AS gender
CA AS state, M AS gender
CO AS state, M AS gender
CT AS state, M AS gender
DC AS state, M AS gender
DE AS state, M AS gender
FL AS state, M AS gender