【问题标题】:How can i connect JSON true or false to my python script如何将 JSON true 或 false 连接到我的 python 脚本
【发布时间】:2021-05-23 10:21:42
【问题描述】:

您好,我正在使用 python 并希望将 JSON True 或 False 连接到我的代码,所以 if "dummy": "True" do ... else: do ... 我的 JSON

[
  {
    "profilename": "Test3",
    "email": "email@outlook.com",
    "password": "Password2*",
    "payment": "Paypal",
    "product": "https://www.unkown.de/de/product/",
    "Dummy":"False"
  },
  {
    "profilename": "Test1",
    "email": "email@gmail.com",
    "password": "Password1*",
    "payment": "Paypal",
    "product": "https://www.unkown.de/de/product/",
    "Dummy":"True"
  }
]

我的python代码:

profile_name =  "Test3"

with open('Data2.json', 'r') as handle:
    json = json.load(handle)


data = [x for x in json if x['profilename'] in profile_name]
email = (data[0]['email'])
password = (data[0]['password'])
payment = (data[0]['payment'])
product = (data[0]['product'])
dummy = (data[0]['dummy'])


def getLogin():
    if dummy = "True":      <----- This doesnt work, want to get this fixed
        import Script2
    else:
    print("starting login process")

就像 if "Dummy": "True" 它应该满足 if 条件, if "dummy": false 它应该满足 else 条件, 我该怎么做?

【问题讨论】:

  • 你能显示回溯吗?我很难理解你的问题
  • 所以基本上我的脚本从 Profile Test3 中获取信息,如果信息 "dummy" = "dummy": "True" 那么它应该导入 Script2,如果 "dummy" = "dummy" : "false" 它应该打印("starting login process")
  • 这不是追溯。 = 也用于赋值,== 用于检查相等性。此外,您需要反序列化 JSON 并与布尔值 True 进行比较,而不是字符串

标签: python json python-jsons


【解决方案1】:

我不确定我是否了解您的实际问题。但是这里有一些您共享的代码的 cmets。

  • 您上次打印的意图已关闭。
  • import Script2 可能不是你想要的。如果Script2 中有函数,请在顶部导入。然后只需调用该函数。
  • if 中您没有使用==
  • 您正在使用名为json 的变量覆盖json 模块

这是修改后的版本

import Script2
import json
with open('Data2.json', 'r') as handle:
    json_out = json.load(handle)

profile_name = ['Test1']

data = [x for x in json_out if x['profilename'] in profile_name]
email = (data[0]['email'])
password = (data[0]['password'])
payment = (data[0]['payment'])
product = (data[0]['product'])
dummy = (data[0]['Dummy']=='True')

def getLogin():
    if dummy:
        Script2.myfunction()
    else:
        print("starting login process")

另一个小的改进是将列表推导替换为生成器推导,因为无论如何您都不想要列表:

data = next(x for x in json_out if x['profilename'] in profile_name)
email = (data['email'])
password = (data['password'])
payment = (data['payment'])
product = (data['product'])
dummy = (data['Dummy']=='True')

【讨论】:

  • 所以基本上我的脚本从 Profile Test3 中获取信息,如果信息 "dummy" = "dummy": "True" 那么它应该导入 Script2,如果 "dummy" = "dummy" : "false" 它应该打印("starting login process")
  • 我还标记了它应该工作的行,但 atm 没有用“
  • 您已将作业 = 留在了 if 条件中,并带有此答案,因此无法正常工作
  • @roganjosh 确实,感谢您指出
猜你喜欢
  • 2019-09-21
  • 2014-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-26
相关资源
最近更新 更多