python - 更新 Python 列表理解中的 JSON 元素

标签 python json list-comprehension

尝试在 python 列表理解中使用 if/then 语句更新/添加到 JSON 元素。我设置 JSON 键“first_seen”的第一部分失败了。有什么想法吗?

now = datetime.datetime.now().strftime("%B, %d, %Y")
[obj["last_seen"] = now for obj in ref_db if obj['user']==user else add_new(user, ext_source, source, first_seen, now)]

错误是:

[obj["last_seen"] = now for obj in ref_db if obj['user']==user else add_new(user, ext_source, source, first_seen, now)]
                  ^
SyntaxError: invalid syntax

我从错误中了解到我的语法错误,但我无法弄清楚为什么会出错。不能在列表理解中使用等号 (=) 吗?

感谢您的帮助。

最佳答案

List-Comprehensions 用于创建列表。您只想使用 for 循环:

now = datetime.datetime.now().strftime("%B, %d, %Y")
for obj in ref_db:
    if obj['user'] == user:
        obj["last_seen"] = now
    else:
        add_new(user, ext_source, source, first_seen, now)

关于python - 更新 Python 列表理解中的 JSON 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53141578/

相关文章:

python - Django - 模型字段定义 unicode

python - Python调用C函数的效率

java - Json 字符串到 HashMap

Python 元组而不是列表

python - 如何在不重复函数评估的情况下编写列表理解?

python - 如何使用python删除单词中的空格?

python - Django 中间件建议不要使用 request.POST 为什么?

json - 在 JSON 的情况下,当模式推断留给 Spark 时,为什么 Spark 会输出 nullable = true?

c# - 区分 byte[] 和 string 与 JSON .NET

Python - 列表切片行为的列表