繁体   English   中英

在 Python 中将 String 转换为 Object

[英]Convert String to Object in Python

我想将字符串数据保存到 object。但我收到错误。 此外, 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

这是 output 我想要它在 object 中,这样我就可以将它视为 contants 文件并在其他文件中使用它。

"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)

给出 output:

{'NAME_SPACE': 'S2MohammadHassanNS', 'URL_AVAILABILITY': 'Availability', 'URL_LATENCY': 'Latency', 'URLs': ['google.com', 'pahe.li', 'bbc.com'], 'AVAILABILITY_THRESHOLD': 1, 'LATENCY_THRESHOLD': 0.22}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM