Python 使用isinstance()从json中删除整数
我正在用Python编写代码,并使用一个JSON文件,该文件有两列数据;一个键,以及在我处理的数据中找到该键的次数。我的目标是删除所有整数键 我将JSON提取为Python 使用isinstance()从json中删除整数,python,json,isinstance,Python,Json,Isinstance,我正在用Python编写代码,并使用一个JSON文件,该文件有两列数据;一个键,以及在我处理的数据中找到该键的次数。我的目标是删除所有整数键 我将JSON提取为test\u map,然后使用keys()方法创建一个键字典(keys)。我正在尝试使用isinstance循环键,以识别键中的每个整数键。我还没有谈到删除部分,但我注意到键中的每个键都被标识为字符串,因此isinstance没有捕获任何内容 如果有人对如何编写此代码以捕获int键有任何想法,然后可能删除它们,我将不胜感激。我相信解决办法
test\u map
,然后使用keys()
方法创建一个键字典(keys)。我正在尝试使用isinstance
循环键,以识别键中的每个整数键。我还没有谈到删除部分,但我注意到键中的每个键都被标识为字符串,因此isinstance
没有捕获任何内容
如果有人对如何编写此代码以捕获int键有任何想法,然后可能删除它们,我将不胜感激。我相信解决办法包括铸造,但我不明白
keys=test_map.keys()
for key in keys:
if isinstance(key,int):
print(f"key: {key}")
我在下面编辑了一个JSON文件示例。我正在尝试删除带有整数键的对象
{
"run": 121,
"'988844333',": 4, <remove
"123": 27, <remove
"brown": 19,
"face": 345,
"21554,": 4, <remove
"gain": 4,
}
{
“跑”:121,
“'988844333',”:4,您可以尝试这样的强制转换。但是您需要编写一个尝试,除非密钥不能转换为int
keys = [key for key in test_map]
for key in keys:
try:
a = int(key)
del test_map[key]
except:
pass
字符串的.isdigit()
方法检查字符串是否仅由数字组成。
这是我的建议
我们可以用它来过滤int键
代码如下:
res={k:v代表k,v在test_map.items()中,如果不是k.isdigit()}
你说的“2列数据”是什么意思?JSON不是列型的。列是不正确的。它是一个JSON,有一个键和一个与键关联的频率值。尼克:这些被称为JSON“对象”,是无序的名称/值对集(请参阅)。这些将通过标准库中的json
模块转换为Python字典。请回答您的问题,并添加json文件中的内容的小样本。我添加了一个正在使用的json示例。感谢您的帮助。感谢您的反馈。运行此操作时,我收到一个运行时错误:在迭代过程中更改了字典的大小n、 从我查到的情况来看,问题是在迭代时从test_映射中删除。感谢您的评论,您是对的,我已将其更改为不引用test_映射键,而是复制它。@martineau根据您的反馈使用注释更新了帖子。