You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS Code Notebook部分存储变量无输出问题排查求助

VS Code Notebook中dict.keys()单独调用无输出问题

问题现象

在VS Code的Notebook环境运行以下Python代码时,print(latest.keys())能正常输出结果,但单独调用latest.keys()却没有任何输出。同一代码在Conda环境的Jupyter Notebook及普通Python文件中运行均正常。

复现代码

import pandas as pd
import os

csv = "\"\"\"Country,Total Cases,New Cases,Total Deaths,New Deaths,Recovered,Serious
China,74187,1751,2006,138,14796,12017
Diamond Princess,621,79,,,17,20
Singapore,81,,,,29,4
Japan,80,6,1,,20,4
Hong Kong,63,1,2,1,5,6
S. Korea,51,20,,,16,
Thailand,35,,,,17,2
USA,29,,,,3,
Taiwan,23,1,1,,2,
Malaysia,22,,,,15,
Vietnam,16,,,,14,
Germany,16,,,,9,
Australia,15,,,,10,
France,12,,1,,7,
Macao,10,,,,5,
U.A.E.,9,,,,3,1
U.K.,9,,,,8,
Canada,8,,,,1,
Philippines,3,,1,,2,
Italy,3,,,,,2
India,3,,,,3,
Russia,2,,,,2,
Spain,2,,,,2,
Nepal,1,,,,1,
Belgium,1,,,,1,
Sri Lanka,1,,,,1,
Finland,1,,,,1,
Egypt,1,,,,,
Cambodia,1,,,,1,
Sweden,1,,,,,\"\"\""

with open("data/covid.csv", "w") as file:
    file.write(csv)

df = pd.read_csv("data/covid.csv").fillna(0).astype(dtype = int, errors='ignore')\
    .sort_values(by='Total Cases', ascending=False)

latest = df.to_dict('list')

some_var = latest.keys()

print(latest.keys()) # 在Notebook中,打印或直接调用变量本应无区别
latest.keys()

原因分析

这是VS Code的Jupyter扩展与标准Jupyter在迭代器/视图对象显示逻辑上的差异导致的:

  • dict.keys()返回的是字典视图对象(dict_keys类型),属于可迭代对象但不是列表。
  • 标准Jupyter Notebook会自动遍历这类可迭代对象并展示其内容,但VS Code的Notebook内核默认不会展开这类对象,因此直接调用时无输出。

解决方法

  1. 转换为列表显示:将latest.keys()改为list(latest.keys()),把视图对象转为列表后,VS Code会正常展示内容。
  2. 更新VS Code Jupyter扩展:部分旧版本的VS Code Jupyter扩展存在此类显示兼容问题,更新到最新版可修复。
  3. 切换兼容内核:使用你本地Conda环境对应的Jupyter内核(和正常运行的环境一致),替换VS Code默认的内核,避免兼容性问题。

内容的提问来源于stack exchange,提问作者Rykari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 11:31:05