为了账号安全,请及时绑定邮箱和手机立即绑定

使用“python -c”控制台命令模式实现for循环

使用“python -c”控制台命令模式实现for循环

慕容3067478 2024-01-27 14:55:12
我想python -c通过 shell 脚本运行以下代码:import json,sysobj=json.loads(open('/temp/209/209formatted_response.json','r').read())revision=obj['component']['referencingComponents'][0]['revision']for element in list(revision):    if 'lastModifier' in element:        del revision['lastModifier']print(revision)使用python -c,它在没有 for 循环的情况下运行良好,但如果我在其中包含 for 循环,它会抛出错误:下面工作正常:python -c "import json,sys; obj=json.loads(open('/temp/209/209formatted_response.json','r').read());revision=obj['component']['referencingComponents'][0]['revision']"下面给出错误:$ /opt/app/anaconda3/envs/anaconda3/bin/python -c "import json,sys; obj=json.loads(open('/temp/209/209formatted_response.json','r').read());revision=obj['component']['referencingComponents'][0]['revision'];for element in list(revision):    if 'lastModifier' in element:        del revision['lastModifier']; print(revision)"  File "<string>", line 1    import json,sys; obj=json.loads(open('/temp/209/209formatted_response.json','r').read());revision=obj['component']['referencingComponents'][0]['revision'];for element in list(revision):    if 'lastModifier' in element:        del revision['lastModifier']; print(revision)                                                                                                                                                                                      ^SyntaxError: invalid syntax我什至尝试在行尾的\n循环的每个语句之前使用,但没有成功;
查看完整描述

2 回答

?
GCT1015

TA贡献1827条经验 获得超4个赞

一种可能的解决方案是使用换行符,但不要直接添加它们:


$ python3 -c "exec(\"n = 3\nfor i in range(n):\n  print(i)\")"

0

1

2

像您一样添加\n,但也将代码括起来"exec(\"...\")"


或者您可以插入真正的换行符:


$ python3 -c "n = 3

> for i in range(n):

>   print(i)"

0

1

2


查看完整回答
反对 回复 2024-01-27
?
慕码人8056858

TA贡献1803条经验 获得超6个赞

问题在于缩进,因此您可以使用过滤函数来代替使用 for 和 if 语句

revision = list(filter(lambda x: not 'lastModifier' in x, list(revision)));


查看完整回答
反对 回复 2024-01-27
  • 2 回答
  • 0 关注
  • 49 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信