在 Python 中将字符串转换为对象
Convert String to Object in Python
我想将字符串数据保存到对象中。但我收到错误。此外,json.loads(st)
对我不起作用。
import boto3
import os
import json
def handler(event,context):
client = boto3.client('s3')
bucketname = os.getenv('bucketname')
response = client.get_object (
Bucket = bucketname,
Key = 'constants.py')
text = response['Body'].read()
st = text.decode('utf-8').replace("'",'"')
return st
这是我希望它在对象中的输出,以便我可以将其视为内容文件并在其他文件中使用它。
"NAME_SPACE = \"S2MohammadHassanNS\"\nURL_AVAILABILITY = \"Availability\"\nURL_LATENCY = \"Latency\"\nURLs = [\"google.com\",\"pahe.li\",\"bbc.com\"]\nAVAILABILITY_THRESHOLD = 1\nLATENCY_THRESHOLD = 0.22"
格式非常简单,您只需手动拆分值即可。我正在使用 ast.literal_eval
转换为 Python 对象,因为它比普通的 eval
.
更安全
from ast import literal_eval
output = {}
for line in st.splitlines():
var, value = line.split(' = ', 1)
output[var] = literal_eval(value)
给出输出:
{'NAME_SPACE': 'S2MohammadHassanNS', 'URL_AVAILABILITY': 'Availability', 'URL_LATENCY': 'Latency', 'URLs': ['google.com', 'pahe.li', 'bbc.com'], 'AVAILABILITY_THRESHOLD': 1, 'LATENCY_THRESHOLD': 0.22}
我想将字符串数据保存到对象中。但我收到错误。此外,json.loads(st)
对我不起作用。
import boto3
import os
import json
def handler(event,context):
client = boto3.client('s3')
bucketname = os.getenv('bucketname')
response = client.get_object (
Bucket = bucketname,
Key = 'constants.py')
text = response['Body'].read()
st = text.decode('utf-8').replace("'",'"')
return st
这是我希望它在对象中的输出,以便我可以将其视为内容文件并在其他文件中使用它。
"NAME_SPACE = \"S2MohammadHassanNS\"\nURL_AVAILABILITY = \"Availability\"\nURL_LATENCY = \"Latency\"\nURLs = [\"google.com\",\"pahe.li\",\"bbc.com\"]\nAVAILABILITY_THRESHOLD = 1\nLATENCY_THRESHOLD = 0.22"
格式非常简单,您只需手动拆分值即可。我正在使用 ast.literal_eval
转换为 Python 对象,因为它比普通的 eval
.
from ast import literal_eval
output = {}
for line in st.splitlines():
var, value = line.split(' = ', 1)
output[var] = literal_eval(value)
给出输出:
{'NAME_SPACE': 'S2MohammadHassanNS', 'URL_AVAILABILITY': 'Availability', 'URL_LATENCY': 'Latency', 'URLs': ['google.com', 'pahe.li', 'bbc.com'], 'AVAILABILITY_THRESHOLD': 1, 'LATENCY_THRESHOLD': 0.22}