Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.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
Google app engine 使用Google App Engine从电子邮件中收集数据_Google App Engine_Parsing_Email - Fatal编程技术网

Google app engine 使用Google App Engine从电子邮件中收集数据

Google app engine 使用Google App Engine从电子邮件中收集数据,google-app-engine,parsing,email,Google App Engine,Parsing,Email,我对googleappengine和python相当陌生,我正在实现一个系统,该系统将基本上解析传入的电子邮件,并将详细信息存储在数据存储中。现在我确实有它的工作,但我觉得应该有一个更好的方式来做,我现在 基本上,进入系统的电子邮件总是如下所示: Order Details: Random Batch Name here Order Status: 74 of 131 Shipped In Total Message ID: 123456 Message Date: 21/04/2011

我对googleappengine和python相当陌生,我正在实现一个系统,该系统将基本上解析传入的电子邮件,并将详细信息存储在数据存储中。现在我确实有它的工作,但我觉得应该有一个更好的方式来做,我现在

基本上,进入系统的电子邮件总是如下所示:

Order Details: Random Batch Name here

Order Status: 74 of 131 Shipped In Total

Message ID: 123456

Message Date: 21/04/2011 16:13:00

Mobile Number: 01234567890

Message: message would be here
我用来解析它的代码如下所示:

class LogSenderHandler(InboundMailHandler):
    def receive(self, message):

        # Get the body text from the e-mail
        plaintext_bodies = message.bodies('text/plain')
        for content_type, body in plaintext_bodies:
            body_text = body.decode().split('\n')

            # Loop through each line in the e-mail and discard a line if it is blank
            for line in body_text:
                if line != "":

                    # I'm sure there's a better way of doing this, just don't know how right now!
                    # Split the current line based on the ": " value and only let it be done once
                    splitline = line.split(': ', 1)

                    # Check to see which line we now have the details for and place value into the correct variable
                    if splitline[0] == "Order Details":
                        batch = splitline[1]
                    if splitline[0] == "Message ID":
                        messageID = splitline[1]
                    if splitline[0] == "Message Date":
                        messageDate = splitline[1]
                    if splitline[0] == "Mobile Number":
                        mobileNumber = splitline[1]
                    if splitline[0] == "Message":
                        theMessage = splitline[1]


        newNumber = SMSNumber( status = "Waiting",
                               batch = common.slugify(batch),
                               messageID = messageID,
                               messageDate = messageDate,
                               sentMessage = theMessage )

        newNumber._key_name = mobileNumber
        newNumber.put()
有没有更好的方法来处理这个问题?如果任何人有任何意见,我们将不胜感激


关于

更简洁的方法是迭代文件的行,在冒号上拆分,然后将行添加到地图中。然后,从映射中读取相关条目,并将其传递给构造函数-指定默认值,以防它不存在。

更好的含义是什么?也许是这个?导入电子邮件>>>msg=email.message\u from\u stringmyString