我的目标是用Python将JSON文件转换为可以从Cloud Storage上传到BigQuery(as described here)的格式。
我尝试使用newlineJSON包进行转换,但收到以下错误。
JSONDecodeError: Expecting value or ']': line 2 column 1 (char 5)
有人有办法解决这个问题吗?
下面是JSON代码示例:
[{
"key01": "value01",
"key02": "value02",
...
"keyN": "valueN"
},
{
"key01": "value01",
"key02": "value02",
...
"keyN": "valueN"
},
{
"key01": "value01",
"key02": "value02",
...
"keyN": "valueN"
}
]
下面是现有的python脚本:
with nlj.open(url_samplejson, json_lib = "simplejson") as src_:
with nlj.open(url_convertedjson, "w") as dst_:
for line_ in src_:
dst_.write(line_)
5条答案
按热度按时间58wvjzkj1#
使用
jq
的答案确实很有用,但如果你仍然想用Python来实现(正如问题所显示的那样),你可以用内置的json
模块来实现。StringIO
和print
只是为了使示例更容易在本地测试。作为替代方案,您可以使用Python jq binding将其与the other answer组合。
vhmi4jdf2#
如果你想摆脱Python,可以使用
jq
:我使用的迭代器是
'.[]'
来遍历数组,-c
将每个JSON对象放在一行中。资源:
gj3fmq9x3#
获取JSON文件,转换成ND-JSON文件。
希望这对某人有帮助。
t5fffqht4#
gz5pxeao5#
如果文件很大,你可能需要使用更快的模块,比如
msgspec
或orjson
,因为他们使用的是c(或者c++,我不完全知道,但有更快)示例: