Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 不易损坏类型:';dict';检查密钥是否存在时出错_Python 3.x - Fatal编程技术网

Python 3.x 不易损坏类型:';dict';检查密钥是否存在时出错

Python 3.x 不易损坏类型:';dict';检查密钥是否存在时出错,python-3.x,Python 3.x,我想检查一个json响应中是否存在一个键,但我当前得到的是标题中显示的错误 这是我的密码 for i in range(len(MoviesLoadedData)): URL_1080p = "" if MoviesLoadedData[i]['torrents']['en']['1080p'] in MoviesLoadedData[i]['torrents']['en']: URL_1080p = MoviesLoadedData[i]['torrents

我想检查一个json响应中是否存在一个键,但我当前得到的是标题中显示的错误

这是我的密码

for i in range(len(MoviesLoadedData)):
     URL_1080p = ""
     if MoviesLoadedData[i]['torrents']['en']['1080p'] in MoviesLoadedData[i]['torrents']['en']:
        URL_1080p = MoviesLoadedData[i]['torrents']['en']['1080p']['url']
     else:
         pass
这里是json响应

{
    "_id": "tt1408101",
    "imdb_id": "tt1408101",
    "title": "Star Trek Into Darkness",
    "torrents": {
        "en": {
            "1080p": {
                "url": "magnet:?xt=urn:btih:BF5529C12559DB47FEA3E57BC7ECE827D188589B&tr=udp://glotorrents.pw:6969/announce&tr=udp://tracker.opentrackr.org:1337/announce&tr=udp://torrent.gresille.org:80/announce&tr=udp://tracker.openbittorrent.com:80&tr=udp://tracker.coppersurfer.tk:6969&tr=udp://tracker.leechers-paradise.org:6969&tr=udp://p4p.arenabg.ch:1337&tr=udp://tracker.internetwarriors.net:1337",
                "seed": 803,
                "peer": 169,
                "size": 2093796557,
                "filesize": "1.95 GB",
                "provider": "YTS"
            },
            "720p": {
                "url": "magnet:?xt=urn:btih:A73CEF306766938EA033DD373FD30337696A8E39&tr=udp://glotorrents.pw:6969/announce&tr=udp://tracker.opentrackr.org:1337/announce&tr=udp://torrent.gresille.org:80/announce&tr=udp://tracker.openbittorrent.com:80&tr=udp://tracker.coppersurfer.tk:6969&tr=udp://tracker.leechers-paradise.org:6969&tr=udp://p4p.arenabg.ch:1337&tr=udp://tracker.internetwarriors.net:1337",
                "seed": 428,
                "peer": 90,
                "size": 967615447,
                "filesize": "922.79 MB",
                "provider": "YTS"
            }
        }
    }
}

任何帮助/建议都将不胜感激。

如果您想检查
'1080p'
是否是dict中的一个键
moviesloadedata[i]['torrents']['en']
, 那么你想要:

if '1080p' in MoviesLoadedData[i]['torrents']['en']:
你要检查的是,如果
moviesloadedata[i]['torrents']['en']['1080p']
是一个键,这是不可能的,因为dict不能是散列键

这应该是:

if MoviesLoadedData[i]['torrents']['en']['1080p']:
    url_1080p = MoviesLoadedData[i]['torrents']['en']['1080p']['url']
    print(url_1080p)

这不是有效的Python代码,标识符不能以数字开头。请给我一个。@jornsharpe当然,我会改的。
否则:通过没有用。@khelwood你说得对