我已连接到 Amazon S3,并尝试使用以下代码从多个存储桶中的 JSON 内容中检索数据。
但我必须只读取特定的 JSON 文件,而不是全部。我该怎么做?
代码:
for i in bucket:
try:
result = client.list_objects(Bucket=i,Prefix = 'PROCESSED_BY/FILE_JSON', Delimiter='/')
content_object = s3.Object(i, "PROCESSED_BY/FILE_JSON/?Account.json")
file_content = content_object.get()['Body'].read().decode('utf-8')
json_content = json.loads(file_content)
except KeyError:
pass
Run Code Online (Sandbox Code Playgroud)
桶结构示例。
test-eob/PROCESSED_BY/FILE_JSON/222-Account.json
test-eob/PROCESSED_BY/FILE_JSON/1212121-Account.json
test-eob/PROCESSED_BY/FILE_JSON/122-multi.json
test-eob/PROCESSED_BY/FILE_JSON/qwqwq-Account.json
test-eob/PROCESSED_BY/FILE_JSON/wqwqw-multi.json
Run Code Online (Sandbox Code Playgroud)
从上面的列表中,我只想读取 *-Account.json 文件。
我怎样才能做到这一点?
有没有办法根据列找出缺失值
例如 :
Field_name Field_Type Field_Id
Message type identifier M 0
Nan M 1
Bitmap secondary C 1
Nan C 2
Processing code M 3
Nan M 4
Amount-Settlement C 5
Run Code Online (Sandbox Code Playgroud)
所以在这里我想知道列 Field_name 中Field_Type = 'M'的缺失值和, Ignoring the missing values inField_Type = 'C'
预期输出:
Field_name Field_Type Field_Id
Nan M 1
Nan M 4
Run Code Online (Sandbox Code Playgroud)
编辑:我们可以为数据框列表执行此操作吗?
data_list = [df1,df2,df3]
output : result [[missngvalues in df1],[missngvalues in df2],[missngvalues in df3]]
Run Code Online (Sandbox Code Playgroud) 我正在尝试滚动 s3 中的所有存储桶,看看是否有匹配的前缀并进入这些文件夹并读取 json 文件。
我试图获取包含前缀的文件夹,但未能输入它们。
代码:
import boto3
bucket = ['test-eob', 'test-eob-images']
client = boto3.client('s3')
for i in bucket:
result = client.list_objects(Bucket=i,Prefix = 'PROCESSED_BY/FILE_JSON', Delimiter='/')
print(result)
Run Code Online (Sandbox Code Playgroud)
使用它会得到带有前缀的那些,当存储桶没有该前缀时会失败。
的结构test-eob,test-eob/PROCESSED_BY/FILE_JSON/*.json
如果只有我的前缀匹配,我必须读取 json,否则就从桶里出来。
有人可以帮我从这里出去吗。
我正在尝试从 s3 Buckets 中的特定文件夹中获取文件:
我在 s3 中有 4 个存储桶,名称如下:
1 - 'PDF'
2 - 'TXT'
3 - 'PNG'
4 - 'JPG'
Run Code Online (Sandbox Code Playgroud)
所有 s3 存储桶的文件夹结构如下所示:
1- PDF/analysis/pdf-to-img/processed/files
2- TXT/report/processed/files
3- PNG/analysis/reports/png-to-txt/processed/files
4- JPG/jpg-to-txt/empty
Run Code Online (Sandbox Code Playgroud)
我必须检查processed/files存储桶中是否存在此文件夹前缀,如果存在,我将读取这些目录中存在的文件,否则我将忽略它们。
代码:
buckets = ['PDF','TXT','PNG','JPG']
client = boto3.client('s3')
for i in bucket:
result = client.list_objects(Bucket=i,Prefix = 'processed/files', Delimiter='/')
print(result)
Run Code Online (Sandbox Code Playgroud)
如果文件夹结构相同,我可以进入每个目录,但是当每个存储桶的文件夹结构不同时,我该如何处理?
我正在尝试打印字典列表中是否有 nan 值,但未能执行此操作。
data = [{'A' : 2, 'B' : 'ssss'}, {'A' : 3, 'B' : 'xxx'}, {'A' :nan, 'B' : 'ssss'}]
Run Code Online (Sandbox Code Playgroud)
代码 :
for x in data:
if (x['A']== 2):
print('two')
elif (x['A']== np.nan)
print('null')
else:
print('nothing')
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个具有唯一键和多个值的字典
DF :
key value
2 21
2 32
2 455
3 12
3 45
3 21
Run Code Online (Sandbox Code Playgroud)
预期输出:
{'2' : ['21', '32', '455'], '3': ['12','45','21']}
Run Code Online (Sandbox Code Playgroud)
代码 :
dict(zip(df['key'], df['value']))
Run Code Online (Sandbox Code Playgroud)
需要一些帮助
在下面的数据集中,我需要找到唯一的序列并为其分配一个序列号..
数据集:
user age maritalstatus product
A Young married 111
B young married 222
C young Single 111
D old single 222
E old married 111
F teen married 222
G teen married 555
H adult single 444
I adult single 333
Run Code Online (Sandbox Code Playgroud)
预期产量:
young married 0
young single 1
old single 2
old married 3
teen married 4
adult single 5
Run Code Online (Sandbox Code Playgroud)
找到上面显示的唯一值后,如果我通过下面的新用户,
user age maritalstatus
X young married
Run Code Online (Sandbox Code Playgroud)
它应该把产品退给我。
X : [111, 222]
Run Code Online (Sandbox Code Playgroud)
如果没有顺序,如下所示
user age maritalstatus
Y adult married …Run Code Online (Sandbox Code Playgroud) 我正在尝试将字典和包含字典和空字典的列表结合起来
dict1 = {'a': 1, 'b': 2}
list1 = [{'c': 3}, {'d':4}]
emptydict = {}
emptylist = []
Run Code Online (Sandbox Code Playgroud)
尝试合并并使其成为最终的字典,如下所示。
final = {'a': 1, 'b': 2, 'c': 3, 'd':4}
Run Code Online (Sandbox Code Playgroud)
代码:
final = {**dict1, **list1[0], **list1[1], **emptydict, **emptylist}
Run Code Online (Sandbox Code Playgroud)
在这里,我不知道 list1 的长度,有人可以建议我比这更好的方法吗?