介绍
福哥在编写python程序的时候比较喜欢用dict类型对象,尤其喜欢用多级dict数据结构。但是有个问题,如果调用一个不存在的元素就会报出KeyError异常,要在上下文里增加try ... except太麻烦了,怎么办呢?
今天福哥给出一些判断dict类型对象是否包含某个键的元素的方法,大家可以根据自己的喜好选择使用。
方法1
通过in判断key是否存在
my = {"nick":"福哥","age":"35","languages":["c/c++","java","php","python","javascript"]}
if "province" in my:
print(my["province"])1234
方法2
使用get方法判断key是否存在
my = {"nick":"福哥","age":"35","languages":["c/c++","java","php","python","javascript"]}
if my.get("province") is not None:
print(my["province"])1234
方法3
使用get方法的第二个参数,如果目标key不存在则返回第二个参数
my = {"nick":"福哥","age":"35","languages":["c/c++","java","php","python","javascript"]}
print(my.get("province", "北京"))
print(my)1234
方法4
使用setdefault方法的第二个参数,如果目标key不存在则返回第二个参数同时讲第二个参数写入key位置
my = {"nick":"福哥","age":"35","languages":["c/c++","java","php","python","javascript"]}
print(my.setdefault("province", "北京"))
print(my)1234
在编写python程序的时候,经常会遇到KeyError这种情况,如果直接使用触发了异常程序就会终止执行了,如果要增加try ... except语句捕获未免太麻烦了,学会使用这些技巧之后就可以从容应对了!
https://m.tongfu.net/home/35/blog/513161.html
文共2523字,预计学习时长15分钟
图源:unsplash
问题来源于生活。上周在做业余项目时,我遇到了一个非常有趣的设计问题:“如果用户输入错误了怎么办?”如果输入错误,就会发生以下这种情况:
示例:Python Dict
Python中的字典表示 键(keys)和值(values)。例如:
student_grades={'John': 'A','Mary': 'C', 'Rob': 'B'}# To check grade of John, we call
print(student_grades['John'])
# Output: A
当您试图访问不存在的密钥时会遇到什么情况?
print(student_grades['Maple'])
# Output:
KeyError Traceback(most recent call last)
<ipython-input-6-51fec14f477a> in <module>
----> print(student_grades['Maple'])
KeyError: 'Maple'
您会收到密匙错误(KeyError)提示。
每当dict()请求对象为字典中不存在的键(key)时,就会发生KeyError。接收用户输入时,此错误十分常见。例如:
student_name=input("Please enter student name: ")
print(student_grades[student_name])
本文将为你提供几种处理Python字典 keyerror的方法。去努力构建一个python智能字典,它能帮你处理用户的输入错误问题。
一个非常简便的方法便是在请求的key不存在时返回默认值。可以使用get()方法完成此操作:
default_grade='Not Available'
print(student_grades.get('Maple',default_grade))# Output:
# Not Available
假设您构建了Python字典,其中包含特定国家的人口数据。代码将要求用户输入一个国家名并输出显示其人口数。
# population in millions. (Source: https://www.worldometers.info/world-population/population-by-country/)
population_dict={'China':1439, 'India':1380, 'USA':331, 'France':65,'Germany':83, 'Spain':46}
# getting userinput
Country_Name=input('Please enterCountry Name: ')
# access populationusing country name from dict
print(population_dict[Country_Name])
# Output
Please enter Country Name: France
65
然而,假设用户输入的是‘france’。目前,在我们的字典里,所有的键的首字母均是大写形式。那么输出内容会是什么?
Please enter Country Name:france-----------------------------------------------------------------KeyError Traceback (most recentcall last)
<ipython-input-6-51fec14f477a> in <module>
2 Country_Name=input('Pleaseenter Country Name: ')
3
----> 4 print(population_dict[Country_Name])
KeyError: 'france'
由于‘france’不是字典中的键,因此会收到错误提示。
图源:unsplash
一个简单的解决方法:用小写字母存储所有国家/地区名称。另外,将用户输入的所有内容转换为小写形式。
# keys (Country Names) are now alllowercase
population_dict={'china':1439, 'india':1380, 'usa':331, 'france':65,'germany':83, 'spain':46}
Country_Name=input('Please enterCountry Name: ').lower() # lowercase input
print(population_dict[Country_Name])
Please enter Country Name:france
65
然而,假设用户输入的是 ‘Frrance’而不是 ‘France’。我们该如何解决此问题?
一种方法是使用条件语句。
我们会检查给定的用户输入是否可用作键(key)。如不可用,则输出显示一条消息。最好将其放入一个循环语句中,并在某特殊的标志输入上中断(如exit)。
population_dict={'china':1439, 'india':1380, 'usa':331, 'france':65,'germany':83, 'spain':46}
while(True):
Country_Name=input('Please enterCountry Name(type exit to close): ').lower()
# break from code if user enters exit
ifCountry_Name=='exit':
break
ifCountry_Nameinpopulation_dict.keys():
print(population_dict[Country_Name])
else:
print("Pleasecheck for any typos. Data not Available for ",Country_Name)
循环将继续运行,直到用户进入exit。
虽然上述方法“有效”,但不够“智能”。我们希望程序功能变强大,并能够检测到简单的拼写错误,例如frrance和chhina(类似于Google搜索)。
图源:unsplash
我找到了几个适合解决key error的库,其中我最喜欢的是标准的python库:difflib。
difflib可用于比较文件、字符串、列表等,并生成各种形式的不同信息。该模块提供了用于比较序列的各种类和函数。我们将使用difflib的两个功能:SequenceMatcher 和 get_close_matches。让我们简单地浏览下这两种功能。
# SequenceMatcher
SequenceMatcher是difflib中的类,用于比较两个序列。我们定义它的对象如下:
difflib.SequenceMatcher(isjunk=None,a='', b='', autojunk=True)
· isjunk :在比较两个文本块时用于标明不需要的垃圾元素(空白,换行符等)。从而禁止通过有问题的文本。
· a and b: 比较字符串。
· autojunk :一种自动将某些序列项视为垃圾项的启发式方法。
让我们使用SequenceMatcher比较chinna和china这两个字符串:
from difflib importSequenceMatcher# import
# creating aSequenceMatcher object comparing two strings
check=SequenceMatcher(None, 'chinna', 'china')
# printing asimilarity ratio on a scale of 0(lowest) to 1(highest)
print(check.ratio())
# Output
#0.9090909090909091
在以上代码中,使用了ratio()方法。ratio返回序列相似度的度量,作为范围[0,1]中的浮点值。
# get_close_matches
现提供一种基于相似性比较两个字符串的方法。
如果我们希望找到与特定字符串相似的所有字符串(存储于数据库),会发生什么情况?
get_close_matches() 返回一个列表,其中包含可能性列表中的最佳匹配项。
difflib.get_close_matches(word,possibilities, n=3, cutoff=0.6)
· word:需要匹配的字符串。
· possibilities: 匹配单词的字符串列表。
· Optional n: 要返回的最大匹配数。默认情况下是3;且必须大于0。
· Optional cutoff:相似度必须高于此值。默认为0.6。
潜在的最佳n个匹配项将返回到一个列表中,并按相似度得分排序,最相似者优先。
图源:unsplash
来看以下示例:
from difflib importget_close_matches
print(get_close_matches("chinna", ['china','france','india','usa']))
# Output
# ['china']
既然可以使用difflib了,那么让我们把所有内容进行组合,构建一个防误的python字典。
当用户提供的国家名不在population_dic.keys()中时,需要格外注意。我们应尝试找到一个名称与用户输入相似的国家,然后输出其人口数。
# pass country_name in word anddict keys in possibilities
maybe_country=get_close_matches(Country_Name, population_dict.keys())# Thenwe pick the first(most similar) string from the returned list
print(population_dict[maybe_country[0]])
最终代码还需考虑其他一些情况。例如,如果没有相似的字符串,或者未向用户确认这是否是所需字符串。如下:
from difflib importget_close_matches
population_dict={'china':1439, 'india':1380, 'usa':331, 'france':65,'germany':83, 'spain':46}
while(True):
Country_Name=input('Please enterCountry Name(type exit to close): ').lower()
# break from code if user enters exit
ifCountry_Name=='exit':
break
ifCountry_Nameinpopulation_dict.keys():
print(population_dict[Country_Name])
else:
# look for similarstrings
maybe_country=get_close_matches(Country_Name,population_dict.keys())
if maybe_country==[]: # no similar string
print("Pleasecheck for any typos. Data not Available for ",Country_Name)
else:
# user confirmation
ans=input("Do youmean %s? Type y or n."% maybe_country[0])
if ans=='y':
# if y, returnpopulation
print(population_dict[maybe_country[0]])
else:
# if n, start again
print("Bad input.Try again.")
输出:
Inida 其实是India.
这样一来,用户的大小写混淆或是输入错误的处理就不在话下了。你还可以进一步研究其他各种应用程序,比如使用NLPs 更好地理解用户输入,并在搜索引擎中显示相似结果。Python智能字典的构建方法,你学会了吗?
留言点赞关注
我们一起分享AI学习与发展的干货
如转载,请后台留言,遵守转载规范
容来自亲测、任天堂官网和网络文章,发现问题请随时回复反馈。
错误代码解决办法查询:电脑“Ctrl+F”(Mac上是command+F)输入你的错误代码,即可定位到指定位置。
首先说下两种联网方式:
无线网络连接(Wi-Fi,推荐)
① 网络环境(推荐电信和联通宽带,不推荐移动和其他小区宽带)
② 无线路由器(推荐网件,英文明netgear)
③ 主机(Nintendo Switch)
开始前
确认无线路由器的SSID(无线路由器名称)和密码(安全密码),新路由器的SSID和密码在无线路由器侧面和底部均有显示。
SSID将以“SSID”或“网络名称”等显示。密码将以“密码”、“安全密码”、“网络密码”、“KEY”等显示。
进行设定
将Nintendo Switch放置于距离无线路由器大约2~3m的位置。无线路由器距离太远可能会无法连接。
然后开始主机操作。按下HOME键显示HOME选单,然后选择“设定”。
选择“インターネット(网路)”→“インターネット设定(网路设定)”。
从“见つけたネットワーク(搜寻到的网络)”选择使用的无线路由器的SSID。※搜不到可按Y键重新搜寻无线路由器。
输入无线路由器的密码,显示俩对号即表示设定完毕。第一个表示主机链接到路由,第二个表示路由链接到外网,如果第二个连不上,不是主机的问题,去检查路由器的设置(宽带网线是否接好,用户名密码是否正确填写,路由是否正常,宽带是否欠费等)
路由器不给你的时候可以选择有线连接
只有电视模式(连底座)可能进行有线连网。
① 网络环境 ② 路由器 ③ 网线 ④ 网线转接器 ⑤ 主机(底座)
开始前
将 Nintendo Switch 设为电视模式,接底座、插电源和 HDMI 链接到显示器或电视。
将网线转接器器(另售)连接到 Nintendo Switch 底座的 USB 插孔,用网线将路由器和网线转接器连接。
同样是进设置
找到网络设置
从“登録済みのネットワーク(已登录的网络)”选择“有线接続(有线连接)”。
选择“有线でインターネットに接続(利用有线连接网路)”,显示“接続しました。(已连接)”即表示设定完成。
建议进行有线连接设定的用户同时设定无线设定
仅设定有线连接的话,将主机从Nintendo Switch底座取出时将无法连接到网路。建议同时也设定无线通讯,从Nintendo Switch底座取出时将自动切换。
修改信道的办法
为什么要修改信道:
各国规定的 5G 民用频段设置,导致主机有可能无法识别 Wi-Fi。国内 5G 最初只开放 149-165 信道,后来开放了 36-48 信道(后期开放信道,部分国行的路由器或者无线设备依然不支持,选购时务必注意)。
经测试,大多国行苹果和微软设备均能正常使用 36-48 信道。华硕 USB-AC68 无线网卡不能识别 36-48 信道,华硕路由 RT-AC68U 只能通过刷写自制固件的方式,才能打开 36-48 信道。刷写路由自制固件的玩家朋友注意,自制固件有可能打开 2.4G 的14信道,这个信道国行是无法使用的,日版也限制使用(3ds 就不支持 14 信道),需要手动切换回 1-13 信道(不要选自动)。Switch 还有可能出现 1-13 信道的2.4G的热点也无法检索到的问题,原因在于网络认证的加密方式——无线连接的加密方式,目前常见的有 AES 和 TKIP 两种,而 Switch 是不支持 TKIP 加密的,建议去设置里改为 AES。
第一步:进入路由器管理页面,无线设置;
第二步:修改无线网络的【地区】,将【地区】改成日本/欧洲等国家,有对应信道的国家均可;
第三步:设置信道,点击【应用】。
信号强度:5G>2.4G
信号覆盖:2.4G>5G
修改后,NS 可使用 5G Wi-Fi啦!如果 NS 距离路由器近,连 5G,如果距离远建议连 2.4G。更多内容可到论坛交流,欢迎分享。
欧版NS,5G WIFI的信道如何设置??
bbs.a9vg.com
一些错误代码的解决办法
错误代码解决办法查询:“Ctrl+F”(Mac上是command+F)输入你的错误代码,即可定位到指定位置。
Error Code: 2110-3127,2618-0203
无法连接有线或无线网络。与DNS有关。检查主机的网络设置中是否输入了错误的DNS,或者 ISP 和 DNS 服务被使用的问题。
解决方案
测试网络连接,然后更换 Switch 到其他网络环境,可能会解决该问题。
△有线和无线互联网连接的常见解决方案
#按下电源键3秒,尝试重新启动Switch。
#检查DNS设置,讲手动改为自动。
#对于特定类型网络需要特定DNS地址,尝试更换其他DNS。
#有时候重新启动网络设备也能解决问题。
#有时候可能是互联网问题,稍等片刻,过一段时间再尝试。
△无线范围问题解决方案
#尝试让Switch靠近路由器,最好在3米-4.5米距离。
#尝试在解决网络问题时,先将Switch断开,解决问题后,在重新连接。
#将任何其他金属或电子设备移开。
#如果当时的情况还没有得到解决:
* 尝试更新路由器固件。
* 尝试路由器恢复出厂设置。
Error Code: 2618-0201,2618-0501,2618-0502,2306-0501,2306-0502,2618-0006
这个错误主要发生在无法加入匹配时,当网络服务较差或者当你试图访问一个糟糕的无线环境时发生。当Internet连接面临超时问题时,也可能出现此错误。
解决方案
#尝试重新启动您的网络设备,因为有时这也可能解决问题。
#试着在3~4.5米范围内将Switch靠近无线路由器,为了更顺利排除故障。避免让其他金属物品或电子设备靠近Switch或路由器,可能会影响无线信号。
#许多路由器支持2.4GHz和5Ghz的双带宽。尝试连接使用不同的带宽,比如你在2.4GHz,然后尝试切换到5Ghz。如果你正在尝试的DNS无效,尝试手动输入另一个DNS。
Error Code: 2110-2003
大多数情况下,由于设置不当,任天堂Switch无法连接到无线网络时出现此错误代码
解决方案
#尝试重新启动Switch,按下电源键3秒,然后进入电源选项,选择重启
#尝试重新启动路由器,因为有时这可以解决您的问题
#无线密码可能错了,重新试试
#尝试一个新的网络连接,确保信号够强。
#试着在3~4.5米范围内将Switch靠近无线路由器,为了更顺利排除故障。
#试着把Switch从底座拿出。
#避免让其他金属物品或电子设备靠近Switch或路由器,可能会影响无线信号
Error Code: 2811-5001,2137-8006
当无法访问E-shop时,可能是路由器信号较弱或DNS使用不当造成的。
解决方案
#如果你正在尝试的DNS无效,尝试手动输入另一个DNS。
#有时候重启网络设备也能解决问题。
#试着在3~4.5米范围内将Switch靠近无线路由器,为了更顺利排除故障。
#在排除故障时,将Switch从底座拿出。
#避免让其他金属物品或电子设备靠近Switch或路由器,可能会影响无线信号。
#许多路由器支持2.4GHz和5Ghz的双带宽。尝试连接使用不同的带宽,比如你在2.4GHz,然后尝试切换到5Ghz。
Error Code: 2124-5200,2811-7503,2811-7504,2124-5002,2124-5249
当您无法登录任天堂账户时,可能服务器关闭或正在维护。
解决方案
#最好的办法是等一会儿,然后再试。
#如果这个问题还没有解决,那么您可以在官方的任天堂网站上验证在线服务状态。
Error Code: 2110-1100
当用户无法连接到有线或无线网络时,就会出现这种错误。大多数情况下,当未检测到保存的网络或没有正确安装USB LAN适配器时,就会发生这种情况。
解决方案
△有线:
#确保在USB LAN适配器和交换机控制台之间使用的LAN被正确插入。
#尝试将USB LAN端口连接到Switch底座不同插槽。
#如果仍然没有解决问题,那么尝试使用另一个LAN适配器。
△无线:
#确保Switch不是飞行模式。长按HOME键1秒,然后进入设置,关闭飞机模式。
#当连接到一个新的网络连接时,确保你连接到一个正确的网络,并且信号强。
#试着在3~4.5米范围内将Switch靠近无线路由器,为了更顺利排除故障。
#在排除故障时,将Switch从底座拿出。
#有时候重启网络设备也能解决问题。
#移动其他金属或电子设备远离Switch和路由器。
Error Code: 2124-3080
当你试图网络对战连接失败的时候。大多数情况下,这发生在一个特定于某个国家或地区的任天堂帐户,因为你的地区可能没有联机多人游戏服务。
Error Code: 2813-1400,2813-0009
当无法使用信用卡在Nintendo e-shop购买时,就会出现这种错误代码。这主要发生在他们的服务处于维护状态时。
解决方案
#有可能这个网站正在维护,等结束后在尝试。
#为了验证支付服务是否有效,您可以在任天堂官方网站上进行验证。
Error Code: 2110-2000到2110-2899,2110-1000到2110-1999
当Switch试图通过有线或无线模式连接到Internet,或者当Internet设置不正确时,就会出现此错误
解决方案
△有线:
#确保以太网电缆的两端都安全牢固地连接或尝试使用另一根电缆。确保两端都牢固连接,如果不行尝试使用另一根电缆。
#尝试重新启动Switch,按住电源键3秒。
#有时重启网络设备也能解决问题。
#如果你的网络连接没有错误,这意味着第一根电缆被损坏,所以继续使用第二根电缆。
#如果您没有从多个端口获得Internet,那么尝试使用一个不同的端口。大多数路由器有4个端口,所以尝试不同的端口,直到它工作
△无线:
#尝试重新启动Switch,按住电源键3秒。
#有时重新启动网络设备将解决问题。
#请确保您在控制台连接的设置中输入的密码是正确的
#试着正确使用一个新的网络连接,并确保你接收到的信号足够强。
#试着在3~4.5米范围内将Switch靠近无线路由器,为了更顺利排除故障。
#在排除故障时,将Switch从底座拿出。
#在修复问题的同时,将金属和电子设备远离路由器和Switch。
Error Code: 2005-0005
当Nintendo Switch出现屏幕卡机不能向前运行的时候
解决方案
启动主机时屏幕卡机:
#关闭switch电源
#还原出厂设置,不删除保存数据
#确保switch已经是最新的系统更新
启动游戏时屏幕卡机:
#尝试删除所有没有正在运行的软件数据,DLC以及更新数据
#然后尝试重新下载它们
#如果错误仍然存在,那么用一个新的或任何其他SD卡来尝试相同的过程。
#如果您没有额外的SD卡,请尝试格式化卡并再次使用。
#尝试移除记忆卡并下载软件到系统内存。
如果你的网络连接速度慢,信号弱或连接超时,无法将帐户链接到Nintendo Switch,则也会发生此错误
Error Code: 2162-0002,2168-0002
当你使用Nintendo switch时,突然出现这类错误...(彩票级错误,也是够背)
解决方案
#关闭主机,然后重启
#检查Nintendo Switch上是否有尚未安装的系统更新
#继续玩吧,看看这个错误是否再次出现,如果没有出现,恭喜你没事了
Error Code: 2618-0513
无法联机或进行联机时发生此错误。 这主要是因为NAT类型,Internet连接速度以及网络是否为P2P
解决方案
#如果在第一次联机时你无法连接,然后再试一次,你可能就成功联机了
#如果你N次都联机都失败时,请检查你的NAT类型,下载速度和上传速度
#有时候,网络延迟也可能导致此类问题发生
Error Code: 2110-2900到2110-2999
此范围内的错误代码通常表示Nintendo Switch试图从网络获取IP地址时发生错误。
如果路由器的DHCP服务器已被禁用,或者路由器没有正确响应,则可能会发生这些错误。
解决方案
有线网络:
#重启路由器(或光猫)
#如果无法自动获取IP地址,请尝试手动将IP输入到主机网络设置中
无线网络:
#重启路由器(或光猫)
#如果无法自动获取IP地址,请尝试手动将IP输入到主机网络设置中
#离路由器近一点试一试
#在排除故障的时候把主机从底座中拿出来
#移开所有Nintendo switch和路由器之间的移动金属或者其他电子设备,以防无线信号被干扰
Error Code: 2124-8028
大多时候由于网络环境太差,无法登陆任天堂账户或者打开eshop时发生此错误
解决方案
#离路由器近一点,玩游戏别隔着好几个承重墙
#解决问题的时候把主机从底座拿出来,不然它不乐意
#移开所有Nintendo switch和路由器之间的移动金属或者其他电子设备,以防无线信号被干扰
#如果你的路由器支持2.4Ghz和5Ghz的双连接,尝试切换一下
#升级下宽带,买个好路由器(华硕或者网件),这类网络问题都能解决...
Error Code: 2306-0520,2160-0103
当你无法联机加入在线游戏时,会出现此类错误
解决方案
#尝试按住电源按钮3秒钟,选择电源选项,来重新启动主机
#尝试手动输入DNS (你需要的DNS点这里)
#重启路由器,重新连接网络
#大部分解决方案同14
Error Code: 2005-0003
当你无法在存储卡中下载游戏时会出现此代码
提示下:如果你在主机中使用存储卡下载游戏的时候,请确保存储卡一直待在主机里直到下载完成,如果下载仍在进行中的时候关闭了电源,则在确认下载已经结束之前,不要移除或者更换存储卡
解决方案
#尝试使用其他存储卡下载
#如果你只有一张存储卡,那么格式化当前使用的存储卡,然后在使用它进行下载
#如果不想格式化,那就尝试删除刚刚下载在存储卡中的文件,可能会有所帮助
#购买任天堂专用的存储卡
Error Code: 2813-6838
无法兑换任天堂eshop卡时会收到此错误代码
解决方案
确认你是否正确输入了eshop卡的号码,就是告诉你仔细点,别马马虎虎的
Error Code: 2110-2004,2110-2200,2110-2214,2110-2201
当你的Nintendo Switch无法连接无线网络时,会出现此错误代码,通常表示路由器或者接入点返回了错误,就是告诉你使用了错误的无线密码
解决方案
#输入正确无线网络密码,通常这条就能帮你解决掉错误
#如果还没有解决,看是否连接到启用MAC过滤的路由器,如果是这样的路由器,只需要把主机的mac地址输入到路由器设置中就可以,或者干脆禁用mac过滤
#以上都不行,可尝试更改无线安全选项,将WPA-AES更改为WPA2-AES,也可能会解决此类问题
Error Code: 2618-0542
当你试图加入已经达到最多玩家人数的房间进行在线比赛时,这个错误代码大多会出现
当你在尝试加入朋友比赛时收到此错误,则表示该朋友所在的房间已达到最大玩家人数
解决方案
等会吧哥,等一会再尝试加入战斗~
Error Code: 2813-0002,2306-0811
当你访问eshop时,恰巧eshop正在维护而无法连接时,会出现此错误代码
解决方案
查看下任天堂支持服务的状态,看它是否正在维护中,如果在维护中,请稍后再尝试连接eshop
日本商店查看地址:https://www.nintendo.co.jp/netinfo/ja_JP/index.html
Error Code: 2160-0202,2137-0240
由于网络连接速度较慢或信号较弱或超时问题而无法连接到在线服务,会发生此错误
解决方案
有线网络:
#重启路由器
#通过连接其他网络设备来检查网络连接,检查你所连接的网络是否正常
无线网络:
#把Nintendo Switch离路由器近一些
#在排除故障的时候把主机从底座中拿出来
#重启路由器
#将Nintendo Switch和路由器之间的移动金属或者其他干扰信号的物品挪走
#如果路由器支持2.4Ghz和5Ghz,可以尝试切换连接一下
Error Code: 2153-0321
当你的Nintendo Switch主机出现问题时会弹出此错误代码(彩票级)
解决方案
#很遗憾,如果这个代码弹出来了,你做好维修主机的准备了!
Error Code: 2110-3400
由于身份验证的问题,无法连接到有线或无线网络时会出现此错误代码
解决方案
#在连接网络身份验证之前,请更新到最新的系统,重新进行网络验证
Error Code: 2810-1224
无法登录Nintendo Switch帐户或电子商店时发生此错误
解决方案
#长按电源按钮进入电源选项重启主机
#重启后,确保右上角的无线信号有一个信号的强度条
#等待一段时间,然后重新登录
Error Code: 2110-3000 ~ 2110-3999
当Nintendo Switch无法链接到有线或者无线网络时,会收到此错误代码(通常在获取IP地址之前发生错误)
解决方案
#使用其他设备连接网络测试是否可以正常访问网络
#检查主机网络设置中的DNS设置(如之前设置为手动,尝试更改为自动)
#手动输入备用DNS
#重启路由器
#如果使用无线连接,主机和路由器靠近一些
#排除故障的时候请将主机从底座中取出
Error Code: 2016-0601
大多数情况下,启动游戏时使用的存储卡(或者系统内存)出现了问题
解决方案
没有使用存储卡的情况:
#确保主机已经是最新的系统更新
#检查损坏的数据
#尝试删除有问题的软件,然后重新下载它
使用存储卡的情况:
#关闭主机电源,取出存储卡检查与主机是否兼容
#如果不兼容,尝试使用其他存储卡
#如果你的存储卡类型为SDXC,为了能够使用必须连接到网络执行系统更新,此次更新你的系统菜单版本不一定会更改
#如果存储卡无法在主机上检测到或读取,可能需要格式化该卡(记得先备份数据)
#格式化存储卡后,请重新下载软件
#如果你仍然遇到问题,请卸载存储卡后尝试将软件下载到系统内存上
Error Codes: 2002-4301 to 2002-4463,2002-0001,2002-3005
当你打开Nintendo Switch主机或者从睡眠模式唤醒时,会出现此类错误
解决方案
#长按住电源按钮3秒,打开电源选项重启主机或长按电源按钮12秒强制关机,然后重新打开
#如果主机内插入存储卡时错误仍然存在,请先关闭主机取出存储卡然后在重新打开
#如果是存储卡的问题,请格式化存储卡(记得先备份数据)
#如果格式化存储卡后问题依然存在,则需要更换存储卡
#确保你的主机已经是最新的系统更新
Error Codes: 2002-4501 ~ 2002-4535,2002-4690,2002-4683,2002-6201,2002-4741 ~ 2002-4760,2002-4641 ~ 2002-4660
当你无法在eshop中下载软件时会出现此错误代码,很可能是你存储卡的原因
解决方案
#确保你的主机已经是最新的系统更新
#检查是否有损坏的数据
#尝试从商店中重新安装崩溃的软件
#如果你取出存储卡后仍然存在问题,那么你就得修理下主机了(还原出厂设置),如果主机中有存储卡的话,先关闭主机取出存储卡,下载软件到系统内存中
#如果你打算格式化存储卡,请不要忘记先备份数据(截图、视频等)
Error Code: 2810-1500
当你无法在Nintendo Switch中登录Facebook账户时会收到此错误代码
解决方案
#重启主机
#重启启动后,经连接无线网络,确保至少有一个强度信号条出现
#如果仍然遇到问题,请稍后在尝试
#国内出现这样的问题,不只是网络的原因了,你懂得
Error Code: 2-BABBE-1000,2306-0819
当你连接到终极街头霸王2或者在线游玩时,会收到此错误代码
解决方案
#确保你的主机已经是最新的系统更新
#更新游戏软件到最新版本,然后重新启动游戏再次联机
Error Code: 2110-2091
通常Nintendo Switch可能检测到LAN适配器,却无法连接到有线网络时,会收此错误代码,可能与以网线或者路由器(光猫)有关
解决方案
#重启路由器(光猫)
#确保网线的两端已经牢固连接
#更换路由器上面的其他端口
#还可以尝试使用其他网线进行连接尝试
Error Code: 2801-7199
无法在Facebook上上传照片是会发生此错误
解决方案
#先取消Facebook帐户与任天堂帐户的关联
#然后重新链接该账户一次
#再次尝试上传图片
#国内出现这样的问题,不只是网络的原因了,你懂得
Error Code: 2122-0082
你无法接收游戏中的数据会收到此错误代码,主要因为你的主机系统没有更新
解决方案
#确保主机安装了最新的系统更新
Error Code: 2813-0055
如果你收到此错误代码,则表示你正尝试兑换下载代码的软件尚未在eshop中正式发布购买
解决方案
#等等吧,等到正式上市的时候在进行下载
#可以通过查看eShop上的游戏页面来确定游戏是否可以购买。 如果它可以购买,那么下载代码应该可以兑换为游戏
Error Code: 2124-3000,2000-0000
非最新版本系统的主机尝试在线连接并使用在线服务的时候,会出现此错误代码
解决方案
#只需安装最新的系统更新即可解决
Error Code: 2801-7002
如果无法在Twitter上上传屏幕截图,则会发生此错误。
解决方案
#服务可能暂时关闭,过一段时间再试一下
#国内出现这样的问题,不只是网络的原因了,你懂得
Error Code: 2817-0700,2816-0700
在使用Nintendo Switch在线服务时,此错误会弹出说明服务器正在维护
解决方案
#只需等待一段时间,然后再试一次
Error Code: 2162-0101
如果无法启动游戏并收到弹出消息“需要软件更新,则会出现此错误。 请重新启动软件并执行软件更新, 这主要发生在软件需要更新时,以及附件内容需要更新时
解决方案
#回到主菜单并访问软件的选项来更新它。
#如果已经是更新到最新版本,重新开始游戏吧
Error Code: 2164-0020
启动游戏软件时,收到此错误代码
解决方案
#返回主菜单,找到发生此错误代码的软件,然后按+或-打开软件选项,选择管理软件,然后选择删除软件
#取出游戏卡然后再次插入,重新打开软件
#重启软件后,或收到重新下载软件更新的选项,进行软件更新
Error Codes: 2002-0007 to 2002-0008
当你尝试下载软件出问题时,会发生此错误
解决方案
#确保主机已经是最新的系统更新
#尝试删除导致问题的软件,然后重新下载
Error Code: 2618-0516
当进行匹配在线游戏时会发生此错误,这通常意味着网络对于P2P并不是最佳的,NAT类型可能存在问题
解决方案
#重启路由器进行尝试
#进行DMZ大法,这里不做过多说明,但是如果DMZ还不行,记住及时关闭
#打宽带服务商客服更改公网IP(不是那么容易)
#挂游戏加速器
Error Code: 2124-8006,2124-8007
无法将任天堂的账户连接到你的主机时,会收到此错误代码,此错误代码表示使用的DNS存在问题,或者网络连接超时。多半由于互联网连接速度慢,无线干扰或来自路由器的弱无线信号造成的。
解决方案
#手动设置下比较好用的DNS
#还原路由器出厂设置,确保路由器版本为最新
Error Code: 2813-0998
该地区(比如香港)还没有任天堂的线上商店,到 My Nintendo 把“国籍”修改成→“日本”或其它有任天堂商店的地区。
更多错误代码的解决办法请查看任天堂官方 错误代码检索
*请认真填写需求信息,我们会在24小时内与您取得联系。