-1

您好,我正在使用 python 并希望将 JSON True 或 False 连接到我的代码,所以 if "dummy": "True" do ... else: do ... My 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 条件,我该怎么做?

4

1 回答 1

1

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

  • 您上次打印的意图已关闭。
  • 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')
于 2021-05-23T10:30:25.217 回答