Python.read()无法将CSV正确读入字符串

2024-06-13 13:59:59 发布

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

我试图使用MWSAPI将制表符分隔的.txt文件推送到Amazon。以下代码起作用:

    from boto.mws import connection
    import time

    # Amazon US MWS ID
    MarketPlaceID = 'mpid'
    MerchantID = 'merchantid'
    AccessKeyID = 'akid'
    SecretKey = 'secretkey'

    conn = connection.MWSConnection(
        aws_access_key_id=AccessKeyID,
        aws_secret_access_key=SecretKey,
        Merchant=MerchantID)

    feed = conn.submit_feed(
        FeedType='_POST_FLAT_FILE_PRICEANDQUANTITYONLY_UPDATE_DATA_',
        PurgeAndReplace=False,
        MarketplaceIdList=[MarketPlaceID],
        content_type='text/tab-separated-values',
        FeedContent="""SKU  QUANTITY
ABC 123"""
    )

使用上述方法,ABC的数量设置为123。但是,当我试图从制表符分隔的文件中读取相同的数据到feed中并将feed dat传递到FeedContent时,我得到一个错误,说明我的头是关闭的。在

^{pr2}$

我觉得.read()方法正在破坏我的制表符分隔的数据。我可以复制/粘贴前几行,并通过用三重引号将数据包装在API中,但我似乎无法将tab文件读入变量并按此方式推送。我也尝试过使用.encode('utf-8')对文件进行编码,但没有成功。感谢您的意见!在

谢谢你

C


Tags: 文件数据keyimportawsamazonaccessfeed
1条回答
网友
1楼 · 发布于 2024-06-13 13:59:59

您正在呼叫feed_content.read()两次。第一次读取整个内容,光标现在指向文件的结尾。再次调用feed_content.read()将返回一个空字符串,因为已经到达了文件的结尾。在

有关此示例,请参阅^{}的文档。在

一个简单的解决方法是在赋值之后移动print,以避免试图调用read()两次:

feed_content = open('/Scripts/data.txt', 'rb')
feed_dat = feed_content.read()
print feed_dat # print has been moved after the assignment

相关问题 更多 >