首页 > 解决方案 > 检查字典中的子字符串作为 if 条件

问题描述

我正在处理一组看起来像一系列嵌套字典的数据。这是一个例子:

{
    "href": "https://api.spotify.com/v1/users/wizzler/playlists",
    "items": [
        {
            "collaborative": false,
            "external_urls": {
                "spotify": "http://open.spotify.com/user/wizzler/playlists/53Y8wT46QIMz5H4WQ8O22c"
            },
            "href": "https://api.spotify.com/v1/users/wizzler/playlists/53Y8wT46QIMz5H4WQ8O22c",
            "id": "53Y8wT46QIMz5H4WQ8O22c",
            "images": [],
            "name": "Wizzlers Big Playlist",
            "owner": {
                "external_urls": {
                    "spotify": "http://open.spotify.com/user/wizzler"
                },
                "href": "https://api.spotify.com/v1/users/wizzler",
                "id": "wizzler",
                "type": "user",
                "uri": "spotify:user:wizzler"
            },
            "public": true,
            "snapshot_id": "bNLWdmhh+HDsbHzhckXeDC0uyKyg4FjPI/KEsKjAE526usnz2LxwgyBoMShVL+z+",
            "tracks": ...
        }
    ]
}

从这个数据集中调用我想要的任何值都没有问题。但是,我正在尝试仅对包含单词“EDM”的 dict 项目执行功能。目前使用我的代码,当我运行它时,它不会在任何播放列表上执行该功能,尽管许多播放列表包含“EDM”。

这是一段代码。

for items in results['items'] and results2['items']:
    if(userid == items['owner']['id'] 
       and items['tracks']['total'] >= intposition 
       and "EDM" in str(items['name'])):
        sp.user_playlist_add_tracks(items['owner']['id'],items['id'], tracks, position)
        print("added to" + items['owner']['display_name'] 
              + " s list  " + items['name'])

希望我提供了足够的信息并体面地格式化了它。

标签: pythonjsonpython-3.xdictionaryif-statement

解决方案


推荐阅读