[英]OSError: [Errno 63] File name too long in JSON FILE (python)
我有这个错误 - OSError: [Errno 63] 文件名太长:
解决此问题的最佳方法是什么?
import requests
import json
import codecs
url = 'https://ratings.food.gov.uk/OpenDataFiles/FHRS314en-GB.json'
response = requests.get(url)
text = response.text
data = json.load(codecs.open(text, encoding='utf8'))
print('data', data)
您可以省略前 3 个字节,它们表示 BOM:
import requests
import json
url = 'https://ratings.food.gov.uk/OpenDataFiles/FHRS314en-GB.json'
response = requests.get(url)
text = response.content[3:]
data = json.loads(text)
print(data)
更动态地查找正确的 BOM 并删除数据:
BOMS = [
codecs.BOM,
codecs.BOM_BE,
codecs.BOM_LE,
codecs.BOM_UTF8,
codecs.BOM_UTF16,
codecs.BOM_UTF16_BE,
codecs.BOM_UTF16_LE,
codecs.BOM_UTF32,
codecs.BOM_UTF32_BE,
codecs.BOM_UTF32_LE,
]
url = 'https://ratings.food.gov.uk/OpenDataFiles/FHRS314en-GB.json'
response = requests.get(url)
data = response.content
for BOM in BOMS:
if data.startswith(BOM):
data = json.loads(data[len(BOM):])
break
print(data)
出去:
{'FHRSEstablishment': {'Header': ...
codecs.open
用于打开文件。 您使用了整个网站的 JSON 响应作为该文件名。 requests
已经知道 JSON 并且您可以让它为您解码
import requests
import json
import codecs
url = 'https://ratings.food.gov.uk/OpenDataFiles/FHRS314en-GB.json'
response = requests.get(url)
data = response.json()
print('data', data)
这比对来自这个特定 web 站点的 JSON 的编码方式做出一些毫无根据的假设要好得多。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.