[英]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.