[英]reading data from file as list
我在s3上包含的文件
[{
'address': 'Bramalea, L6T 0E2'
'type': 'home'
}, {
'address': 'A, 46 Peel Drive, ASDF23'
'type': 'office'
}
}]
我只想閱讀具有office 類型的 地址 ,有人可以建議我如何迭代此數據嗎? 因為到目前為止它只是一個字符串,我已經能夠讀取此數據
conn = S3Connection(AWS_KEY, AWS_SECRET)
bucket = conn.get_bucket(BUCKET_NAME)
for key in bucket.list(DIR_Name):
data = key.get_contents_as_string()
print data
我也嘗試使用json模塊讀取數據
data = key.get_contents_as_string()
print json.loads(data)
它的提高
print json.loads(data)
File "/usr/lib/python2.7/json/__init__.py", line 326, in loads
return _default_decoder.decode(s)
File "/usr/lib/python2.7/json/decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python2.7/json/decoder.py", line 382, in raw_decode
obj, end = self.scan_once(s, idx)
ValueError: Expecting property name: line 2 column 5 (char 8)
無需使用其他模塊。 由於這是詞典的列表,因此很容易僅保留具有'office'
'type'
元素:
my_list = [{
'address': 'aa, 46 Peel Centre Drive, A342',
'type': 'home',
}, {
'address': 'a, 46 Peel Centre Drive, AS32',
'type': 'office',
}, {
'address': 'b, 46 Peel Centre Drive, SD22',
'type': 'home',
}, {
'address': 'c, 46 Peel Centre Drive, SD22',
'type': 'home',
}, {
'address': 'd, 46 Peel Centre Drive, SSD222',
'type': 'office',
}]
addresses = [elem['address'] for elem in my_list if elem['type'] == 'office']
print addresses
我對您的帖子的評論不正確。 不要使用json
模塊來解析此文件,因為這不是有效的json。 有效json僅在其字符串周圍使用雙引號-而不是單引號。 相反,這看起來像基本的python文字結構(閱讀:基本的python數據類型)。 有一種方法可以對可能不受信任的來源安全地執行此操作。 ast.literal_eval
應該可以在這里為您提供幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.