Python JSON 抓取 - 如何处理缺失值?

标签 python json

我对编码还很陌生,所以我在学习过程中学到了很多东西。这个问题让我难住了,尽管我可以在这里找到几个类似的问题,但我找不到一个有效的或具有我可识别的语法的问题。

我正在尝试从 JSON API 中抓取各种用户数据,然后将这些值存储在我设置的 MySQL 数据库中。

代码在大多数情况下似乎运行良好,但有些用户没有我试图在 JSON 中抓取的属性,因此我留下了似乎无法阻止的 Nonetype 错误。

如果可能的话,我想在数据库中存储“0”,其中 json 不包含该属性。

在下面的 m/snippet 中,这对于有工作的用户来说效果很好,但是没有工作的用户在工作职位上返回 Nonetype 并且显然打破了循环。

response = requests.get("URL")
json_obj = json.loads(response.text)

timer = json_obj['timestamp']
jobposition = json_obj['job']['position']

query = "INSERT INTO users (timer, jobposition) VALUES (%s, %s)"
values = (timer, jobposition)

cursor = db.cursor()
cursor.execute(query, values)
db.commit()

提前致谢!

最佳答案

您可以使用字典的 get() 方法,如下所示

timer = json_obj.get('timestamp', 0)

0 是默认值,如果没有“timestamp”属性,它将返回 0。 对于工作职位,你可以这样做

jobposition = json_obj['job'].get('position', 0) if 'job' in json_obj else 0

关于Python JSON 抓取 - 如何处理缺失值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61629389/

相关文章:

python - 如何计算对话中每个角色所说的单词数并将计数存储在字典中?

python - 如何使用子进程获取输出和返回代码?

ruby-on-rails - 使用 jbuilder 在父文件夹中呈现特定部分

javascript - 从 JSON 对象构建树结构

java - 如何通过java将json数据推送到MONGODB中的数组对象中

python - numpy.float 和 numpy.float64 之间的区别

python - 检测图像中的子对象

python - 在 Matplotlib 3D 绘图中获取视角/相机角度?

java - 是否可以在Java中使用org.json解析JSON文件?

java - 错误 : failed to read input object (not a Template?):将 YAML 转换为 JSON 时出错:yaml:在此上下文中不允许映射值