Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更新Python列表中的JSON元素_Python_Json_List Comprehension - Fatal编程技术网

更新Python列表中的JSON元素

更新Python列表中的JSON元素,python,json,list-comprehension,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)] 错

尝试使用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
我从错误中理解我的语法是错误的,但我不明白为什么它是错误的。在列表中不能使用等号(=)吗


感谢您的帮助。

列表理解用于创建列表。您只需要使用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)

列表理解用于创建列表。您只需要使用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)

不清楚你期望的结果是什么。您是否希望结果列表为
obj[“last_seen”]
?您需要在for循环中使用一个简单的if/else语句,而不是列表理解。请包含一个我们可以实际运行的语句。可能重复的语句不清楚您期望的结果。您是否希望结果列表为
obj[“last_seen”]
?您需要在for循环中使用一个简单的if/else语句,而不是列表理解。请包含一个我们可以实际运行的。可能重复的