似乎 BigQuery 在选择 --format json 时总是在值周围加上双引号,即使该字段是整数字段
如果你运行这个:
node --eval 'console.log(JSON.stringify({a:1}));'
Run Code Online (Sandbox Code Playgroud)
你会看到字符串:
{"a":1}
Run Code Online (Sandbox Code Playgroud)
(1 是 an integer,它在 javascript 对象中显示为整数。)
我们希望 BigQuery 中的查询输出也是
{"a":1}
Run Code Online (Sandbox Code Playgroud)
当字段是integer字段时
例如,“bqtest”文件包含:
a
1
Run Code Online (Sandbox Code Playgroud)
请执行下列操作:
bq load --skip_leading_rows 1 --replace --project_id YOUR-PROJECT-ID nfl.jsontestinteger bqtest a:integer
Run Code Online (Sandbox Code Playgroud)
然后
bq query --format json --project_id YOUR-PROJECT-ID "SELECT * FROM nfl.jsontestinteger"
Run Code Online (Sandbox Code Playgroud)
你会看见:
[{"a":"1"}]
Run Code Online (Sandbox Code Playgroud)
如果您不想创建一个公共表,可以使用以下公共表:
bq query --format json --project_id YOUR-PROJECT-ID "SELECT * FROM [personal-real-estate:nfl.jsontestinteger]"
Run Code Online (Sandbox Code Playgroud)
问题:有没有办法让 BigQueryintegers在 json 格式输出中没有双引号的情况下格式化?
只是为了确认这里的流程相同,但我们将字段创建为string字段
bq load --skip_leading_rows 1 --replace --project_id YOUR-PROJECT-ID nfl.jsonteststring bqtest a:string
bq query --format json --project_id YOUR-PROJECT-ID "SELECT * FROM [personal-real-estate:nfl.jsonteststring]"
Run Code Online (Sandbox Code Playgroud)
还返回完全相同的结果:
[{"a":"1"}]
Run Code Online (Sandbox Code Playgroud)
string和integer字段的输出不应该不同吗?
| 归档时间: |
|
| 查看次数: |
1366 次 |
| 最近记录: |