Json对象的函数帮助

2024-06-25 05:46:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python和编程的新手。我编写这个原始脚本是为了处理来自opengraph的一些Facebook数据

它的作品,并产生了.csv我想要的

def main():
    ts = FacebookSearch()
    data = ts.search('appliance')
    js = json.loads(data)

    messages = ([msg['created_time'], msg.get('message', 'Key "message" is not present.').replace('\n', '').replace(',', '').encode('utf8'),  msg['from']['id']] for msg in js.get('data', []))

    write_csv('fb_washerdryer.csv', messages, append=True)

上述代码的问题:

它又长又可怕 2.)我想将“message”的总大小缩短到900 varchar

为了完成上述任务,我将消息分解为一个自己的函数:

def main():
    ts = FacebookSearch()
    data = ts.search('appliance')
    js = json.loads(data)

def extract_info(msg):
    created_time = msg['created_time']
    message = msg.get('message', 'Key "message" is not present.').replace('\n', '').replace(',', '').encode('utf8')
    user_id = msg['from']['id']
    return (created_time, message, user_id)

    messages = (extract_info(msg) for msg in js.get('data', []))


    write_csv('fb_washerdryer.csv', messages, append=True)

我没有得到一个错误,当我运行这个新代码,但我不打印任何东西

任何关于我做了什么错事的想法。因为我没有一个错误,我有点卡住了,还没有得到我的第二个任务,缩短'消息'字符串


Tags: csvidmessagedatagettimemaindef
1条回答
网友
1楼 · 发布于 2024-06-25 05:46:08

看起来像是压痕问题。第二个示例的最后两行在extract_info内,而不是main。尝试:

def main():
    ts = FacebookSearch()
    data = ts.search('appliance')
    js = json.loads(data)

    def extract_info(msg):
        created_time = msg['created_time']
        message = msg.get('message', 'Key "message" is not present.').replace('\n', '').replace(',', '').encode('utf8')
        user_id = msg['from']['id']
        return (created_time, message, user_id)

    messages = (extract_info(msg) for msg in js.get('data', []))


    write_csv('fb_washerdryer.csv', messages, append=True)

或者,为了防止嵌套函数混淆:

def extract_info(msg):
    created_time = msg['created_time']
    message = msg.get('message', 'Key "message" is not present.').replace('\n', '').replace(',', '').encode('utf8')
    user_id = msg['from']['id']
    return (created_time, message, user_id)

def main():
    ts = FacebookSearch()
    data = ts.search('appliance')
    js = json.loads(data)
    messages = (extract_info(msg) for msg in js.get('data', []))
    write_csv('fb_washerdryer.csv', messages, append=True)

相关问题 更多 >