在 Python 3 中用字符串和数字创建一个元组
Create a tuple in Python 3 with string and number
我在 python 中有一个对象,如下所示
contributor_detail=contributorId+ ',' +contentFileName+','+productPriority
output =
CSFBW23_1194968,CSFBW23_1194968.pdf,10
CSFBW23_1194969,CSFBW23_1194968.pdf,11
CSFBW23_1194970,CSFBW23_1194968.pdf,13
如有不明之处请见谅
我将尝试在这里重新构建它,这就是我制作数组然后需要制作元组进行排序的方式。
for record in event['Records']:
#pull the body out & json load it
jsonmaybe=(record["body"])
jsonmaybe=json.loads(jsonmaybe)
jsonmaybe1=(jsonmaybe["Message"])
jsonmaybe1=json.loads(jsonmaybe1)
#now the normal stuff works
bucket_name = jsonmaybe1["Records"][0]["s3"]["bucket"]["name"]
print(bucket_name)
key=jsonmaybe1["Records"][0]["s3"]["object"]["key"]
print(key)
s3_clientobj = s3.get_object(Bucket=bucket_name, Key=key)
s3_clientdata = s3_clientobj['Body'].read().decode('utf-8')
employee_dict = json.loads(s3_clientdata)
contributorId=employee_dict['Research']['Product']['@productID']
contentFileName=employee_dict['Research']['Product']['Content']['Resource']['Name']
productPriority=employee_dict['Research']['Product']['@productPriority']
print("contributorId---------------"+contributorId)
print("contentFileName---------------"+contentFileName)
print("productPriority---------------"+productPriority)
contributor_detail=contributorId +','+contentFileName+','+productPriority
unsorted_contributors.append(contributor_detail)
我想从中创建一个元组并向该元组添加多个对象。
Output i am getting now
['CSFBW23_1194968,CSFBW23_1194968.pdf,6', 'CSFBW23_1194968,CSFBW23_1194968.pdf,7', 'CSFBW23_1194968,CSFBW23_1194968.pdf,9']
Expected output
[("CSFBW23_1194968","CSFBW23_1194968.pdf",6),("CSFBW23_1194968","CSFBW23_1194968.pdf",7),("CSFBW23_1194968","CSFBW23_1194968.pdf",9)]
我需要上面的元组,以便可以根据元组中的第 3 个项目对它进行排序。
sorted_contributors.sort(key=itemgetter(2))
请帮忙在循环中创建这样的格式
如果我没理解错的话,看起来你只需要停止像使用 contributorId+ ',' +contentFileName+','+productPriority
那样制作 contributor_detail
和字符串。假设这些值是字符串和一个 int,您将它们作为字符串与 ,
连接。确实不太清楚你在追求什么,但我怀疑,你想要的是:
conributor_detail = contributorId, contentFileName, productPriority
这会生成一个元组,您可以从中创建一个列表。
from operator import itemgetter
contrib1 = "CSFBW23_1194968", "CSFBW23_1194968.pdf", 10
contrib2 = "CSFBW23_1194969", "CSFBW23_1194968.pdf", 11
contrib3 = "CSFBW23_1194970", "CSFBW23_1194968.pdf", 13
contributors = [contrib1, contrib2, contrib3]
sorted_contributors = sorted(contributors, key=itemgetter(2))
print(sorted_contributors)
输出:
[('CSFBW23_1194968', 'CSFBW23_1194968.pdf', 10), ('CSFBW23_1194969', 'CSFBW23_1194968.pdf', 11), ('CSFBW23_1194970', 'CSFBW23_1194968.pdf', 13)]
对您的问题的简单说明:
# what you are doing (incorrect):
In [1]: contrib1 = "thingB"+","+"thingA"+","+"1"
In [2]: contrib2 = "thingC"+","+"thingD"+","+"2"
In [3]: print([contrib1, contrib2])
['thingB,thingA,1', 'thingC,thingD,2']
# what you really want is:
In [4]: contrib1 = "thingB", "thingA", 1
In [5]: contrib2 = "thingC", "thingD", 2
In [6]: print([contrib1, contrib2])
[('thingB', 'thingA', 1), ('thingC', 'thingD', 2)]
这将创建正确的格式
my_list = []
my_list.append(contributorId)
my_list.append(contentFileName)
my_list.append(bucket_name)
my_list.append(key)
my_list.append(int(productPriority))
unsorted_contributors.append(my_list)
串联导致格式不匹配,因此创建一个列表并追加应该有效
我在 python 中有一个对象,如下所示
contributor_detail=contributorId+ ',' +contentFileName+','+productPriority
output =
CSFBW23_1194968,CSFBW23_1194968.pdf,10
CSFBW23_1194969,CSFBW23_1194968.pdf,11
CSFBW23_1194970,CSFBW23_1194968.pdf,13
如有不明之处请见谅 我将尝试在这里重新构建它,这就是我制作数组然后需要制作元组进行排序的方式。
for record in event['Records']:
#pull the body out & json load it
jsonmaybe=(record["body"])
jsonmaybe=json.loads(jsonmaybe)
jsonmaybe1=(jsonmaybe["Message"])
jsonmaybe1=json.loads(jsonmaybe1)
#now the normal stuff works
bucket_name = jsonmaybe1["Records"][0]["s3"]["bucket"]["name"]
print(bucket_name)
key=jsonmaybe1["Records"][0]["s3"]["object"]["key"]
print(key)
s3_clientobj = s3.get_object(Bucket=bucket_name, Key=key)
s3_clientdata = s3_clientobj['Body'].read().decode('utf-8')
employee_dict = json.loads(s3_clientdata)
contributorId=employee_dict['Research']['Product']['@productID']
contentFileName=employee_dict['Research']['Product']['Content']['Resource']['Name']
productPriority=employee_dict['Research']['Product']['@productPriority']
print("contributorId---------------"+contributorId)
print("contentFileName---------------"+contentFileName)
print("productPriority---------------"+productPriority)
contributor_detail=contributorId +','+contentFileName+','+productPriority
unsorted_contributors.append(contributor_detail)
我想从中创建一个元组并向该元组添加多个对象。
Output i am getting now
['CSFBW23_1194968,CSFBW23_1194968.pdf,6', 'CSFBW23_1194968,CSFBW23_1194968.pdf,7', 'CSFBW23_1194968,CSFBW23_1194968.pdf,9']
Expected output
[("CSFBW23_1194968","CSFBW23_1194968.pdf",6),("CSFBW23_1194968","CSFBW23_1194968.pdf",7),("CSFBW23_1194968","CSFBW23_1194968.pdf",9)]
我需要上面的元组,以便可以根据元组中的第 3 个项目对它进行排序。
sorted_contributors.sort(key=itemgetter(2))
请帮忙在循环中创建这样的格式
如果我没理解错的话,看起来你只需要停止像使用 contributorId+ ',' +contentFileName+','+productPriority
那样制作 contributor_detail
和字符串。假设这些值是字符串和一个 int,您将它们作为字符串与 ,
连接。确实不太清楚你在追求什么,但我怀疑,你想要的是:
conributor_detail = contributorId, contentFileName, productPriority
这会生成一个元组,您可以从中创建一个列表。
from operator import itemgetter
contrib1 = "CSFBW23_1194968", "CSFBW23_1194968.pdf", 10
contrib2 = "CSFBW23_1194969", "CSFBW23_1194968.pdf", 11
contrib3 = "CSFBW23_1194970", "CSFBW23_1194968.pdf", 13
contributors = [contrib1, contrib2, contrib3]
sorted_contributors = sorted(contributors, key=itemgetter(2))
print(sorted_contributors)
输出:
[('CSFBW23_1194968', 'CSFBW23_1194968.pdf', 10), ('CSFBW23_1194969', 'CSFBW23_1194968.pdf', 11), ('CSFBW23_1194970', 'CSFBW23_1194968.pdf', 13)]
对您的问题的简单说明:
# what you are doing (incorrect):
In [1]: contrib1 = "thingB"+","+"thingA"+","+"1"
In [2]: contrib2 = "thingC"+","+"thingD"+","+"2"
In [3]: print([contrib1, contrib2])
['thingB,thingA,1', 'thingC,thingD,2']
# what you really want is:
In [4]: contrib1 = "thingB", "thingA", 1
In [5]: contrib2 = "thingC", "thingD", 2
In [6]: print([contrib1, contrib2])
[('thingB', 'thingA', 1), ('thingC', 'thingD', 2)]
这将创建正确的格式
my_list = []
my_list.append(contributorId)
my_list.append(contentFileName)
my_list.append(bucket_name)
my_list.append(key)
my_list.append(int(productPriority))
unsorted_contributors.append(my_list)
串联导致格式不匹配,因此创建一个列表并追加应该有效