如何让Json对象同时工作?蟒蛇

时间:2017-09-21 16:48:18

标签: python json multithreading concurrency

我打算做的是拥有多个JSON对象,例如:

{
    "Profiles": {
        "profile_0": {
            "Url": "Myownwebsite.se",
            "My-Note": "Helloworld",
            "Email": "Stackoverflow@gmail.com"
            "PersonNumber": "1234543",
            "postal_code": "54123",
            "given_name": "World",
            "Last_name": "Hellow",
            "street_address": "helloworld 123",
            "city": "Stockholm",
            "country": "Sweden",
            "phone": "123456789",
            "Color": "Red",
            "house_number": "123",
            "year": "2017"
        },
        "profile_1": {
            "Url": "Myasdwfaesite.se",
            "My-Note": "aasfase",
            "Email": "fasfsef@gmail.com"
            "PersonNumber": "5634543",
            "postal_code": "123445",
            "given_name": "Balling",
            "Last_name": "Calling",
            "street_address": "qwertr 123",
            "city": "London",
            "country": "UK",
            "phone": "65412331",
            "Color": "Blue",
            "house_number": "321",
            "year": "2018"
        }

        #Profile_2 etc etc
    }
}

我的计划是让json个人资料/对象通过我的代码同时工作。

  1. 使用0 - x
  2. 之间的配置文件
  3. 与我的代码
  4. 同时发生
  5. 完成后 - 退出
  6. 更直观的表现形式:

    My Thought

    到目前为止我做了什么

    我现在可以使用以下代码读取一个JSON对象:

    with open('profileMulti.json', 'r', encoding='UTF-8') as json_data:
        config = json.load(json_data)
    

    这给了我这个输出:如果第一个Json配置文件并且它不能在Json中添加另一个配置文件,否则代码将不会重新获得它。

    可以使用此

    创建的代码示例
                "Url": "Myownwebsite.se",
                "My-Note": "Helloworld",
                "Email": "Stackoverflow@gmail.com"
                "PersonNumber": "1234543",
                "postal_code": "54123",
                "given_name": "World",
                "Last_name": "Hellow",
                "street_address": "helloworld 123",
                "city": "Stockholm",
                "country": "Sweden",
                "phone": "123456789",
    

    ^这是我在下面的代码。

    我期待发生的事情 ......

    是否在我们拥有这些信息的代码中,例如姓名,姓氏,电子邮件等等。从Json中获取信息,将其加载到代码中,完成剩下的工作然后退出。所有这些都应该同时工作,这意味着当我运行程序时,它会查看有多少个配置文件,然后在我的代码中同时将其除外,然后当所有完成然后退出时。这意味着profile1不应该与profile2混合。一切都是为了他们每个人,应该像对方一样受到威胁。

    CODE

        with open('profileMulti.json', 'r', encoding='UTF-8') as json_data:
        config = json.load(json_data)
    
    NameUrl = config["Url"]
    
    myNote = config["My-Note"]
    
    def checkoutNames(NameUrl, nameID):
    
    #Request & other codes - Removed to recude the code
    #......
    #......
        headers = {
            'Referer': '',
            'Content-Type': ''
        }
        payload = {
            "shared": {
                "challenge": {
                    "email": config["Email"],
                    "PersonNumber": config["PersonNumber"],
                    "postal_code": config["ZipCode"],
                      "given_name": config["Name"],
                    "Last_name": config["LastName"],
    
                    "street_address": config["Address"],
                    "postal_code": config["ZipCode"],
                    "city": config["City"],
                    "country": config["Country"],
                    "email": config["Email"],
                    "phone": config["Phone"],
                }
    
    def checkoutNotes(NamesUrl, NamesPost):
    
    #Request & other codes - Removed to recude the code
    #......
    #......
    
        headers = {
            'Accept': 'application/json, text/javascript, /; q=0.01',
            'Accept-Language': 'en-US,en;q=0.5',
            'Accept-Encoding': 'gzip, deflate, br',
            'Referer': NameUrl,
            'Connection': 'keep-alive'
        }
        payloadInfo = {
            "Information": {
                "Color": config["Color"],
                "house_number": config["houseNumber"],
                "year": config["Year"]
          }
        }    
    def wipe():
        os.system('cls' if os.name == 'nt' else 'clear')
    
    def main():
        time.sleep(1)
    
        FindName(myNote)
    
    if _name_ == '_main_':
        try: {
            main()
        }
        except KeyboardInterrupt:
            wipe()
    

    所以我的梦想就是让它工作......基本上我们可以在代码中看到它已经使用nameUrl和myNote开始,我需要从那些json对象中同时获取那些信息(并发)。

    因为se也可以看到需要来自Json的信息的不同功能。例子可以在函数CheckoutNames内部,并且有一个Payload我需要同时输入Json配置文件...它应该同时为每个配置文件分别工作,所以基本上profile_0不能与profile_1等混合使用。我希望我已经解释得很好,知道问题是什么。

    编辑:

    我假设需要同时运行它们才能运行多进程,以便每个配置文件都在自己的线程上运行,而不会在每个配置文件之间产生任何迭代?

0 个答案:

没有答案