下载json对象时出现卷曲错误

时间:2016-09-01 19:17:08

标签: python json bash curl

收到以下错误...

curl: (56) GnuTLS recv error (-54): Error in the pull function.

...使用以下命令卷曲json文件

curl -L -o commerce.json http://www.commerce.gov/data.json

有什么建议吗?我不熟悉卷曲。也许这是一个超时错误。反正我可以阻止吗?我真的需要这个文件,我无法从浏览器下载它(假设文件太大)。

我在Ubuntu上从命令行工作。喜欢,或者是卷曲,蟒蛇解决方案。

2 个答案:

答案 0 :(得分:2)

the error code 56 means the following, as described here https://curl.haxx.se/docs/manpage.html

56 Failure in receiving network data.

you should use a -v to see what's happen.

I don't thnik that another tool fix the network error.

Never the less there is a example in plain python.

CURL alternative in Python

答案 1 :(得分:1)

在bash中你可以使用:

wget -O commerce.json http://www.commerce.gov/data.json

否则,Python的解决方案是:

首先,您需要安装Python wget库,然后才能使用代码:

import wget
url = 'http://www.commerce.gov/data.json'

commercejson = wget.download(url)

这会将data.json文件下载到本地Python项目目录。 data.json文件目前为198MB,因此curl可能无法很好地处理它。

更新:压缩JSON下载:

要启用gzip压缩,您可以使用以下内容下载gzip压缩版本,最终只需19MB,这样下载会更友好。

wget -S --header="accept-encoding: gzip" -O commerce.json.gz http://www.commerce.gov/data.json

然后,一旦下载了gzip压缩的json文件,运行以下命令将其解压缩:

gzip -d commerce.json.gz