/ / Помилка під час завантаження файлу JSON в Amazon SQS - python, amazon-web-сервіси, boto, amazon-sqs

Помилка при завантаженні файлу JSON в Amazon SQS - python, amazon-web-services, boto, amazon-sqs

У мене є наступний код, який в основному намагається написати файл .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"

Це завантажує потрібну програму.Файл json, що мені потрібно зробити, це запустити цикл на кількість файлів, оскільки у мене є emp1.json, emp2.json, emp3.json, emp4.json до SQS, а BOTO за замовчуванням робить кодування BASE64 перед відправкою .. мені потрібно надіслати ці файли у тому ж форматі, тобто ".json"

Відповіді:

0 для відповіді № 1

Відповідно до вашого запитання та наших коментарів, вам потрібно скористатися 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)
.....