我有以下代码,基本上尝试将.json文件写入SQS
import json
import uuid
import time
import boto.sqs
import boto
from boto.sqs.connection import SQSConnection
from boto.sqs.message import Message
from boto.sqs.message import RawMessage
sqs = boto.sqs.connect_to_region("ap-southeast-1")
queue = sqs.get_queue("Demon")
json_fileone=open('emp.json') ## this is only one JSON file
dataone=json.load(json_fileone)
print dataone
[queue.write(queue.new_message(i)) for i in dataone]
print "File sent successfully to queue"
这会上传所需的emp.json文件,我需要做的是对文件数运行循环,因为我有emp1.json,emp2.json,emp3.json,emp4.json到SQS,默认情况下BOTO在发送之前执行BASE64编码...我需要以相同的格式发送这些文件,即' .json'
答案 0 :(得分:0)
根据您的问题和我们的评论,您需要使用glob。
import glob
json_files = glob.glob("*.json")
for json_file in json_files:
process_file(json_file)
因此,请将您的流程移至功能process_file
。同时使用with
语句来处理文件。
def process_file(json_file):
sqs = boto.sqs.connect_to_region("ap-southeast-1")
queue = sqs.get_queue("Demon")
with open('emp.json') as json_fileone:
dataone=json.load(json_fileone)
.....