大神们,rbm求解算法

& 请教一下各位大神们,求解
请教一下各位大神们,求解
本人想在清明节的时候跟同事一起去轿顶山露营烧烤,请教一下旅游攻略,我们从成都出发。谢谢
<textarea name="editor" class="_j_content _j_answer_suggest" id="_js_editorText" placeholder="用自己的【真实经历】作答,而不是网上搜来的信息好回答不一定特长,但一定【不是简单的一两句话】永远替提问者【多想一步】,会加分哦~">
京公网安备号
新出网证(京)字242号 全国统一客服电话:问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
现有如下数据结构:
"buckets": [
"key": "",
"buckets": [
"key": "A",
"sum_qty": {
"value": 5
"sum_amt": {
"value": 10
"key": "",
"buckets": [
"key": "B",
"sum_qty": {
"value": 20
"sum_amt": {
"value": 100
最终结果:
{'date': '', 'shop': 'A', 'sum_qty': 5, 'sum_amt': 10},
{'date': '', 'shop': 'B', 'sum_qty': 20, 'sum_amt': 100}
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
试试 json_path_rw 吧原版是 json_path_rw -
from jsonpath_rw import parse
# data = {...你的数据...}
match = parse("$.date.buckets[*].key|(shop.buckets)").find(data)
# print [m.value for m in match]
{'key': 'A', 'sum_amt': {'value': 10}, 'sum_qty': {'value': 5}},
{'key': 'B', 'sum_amt': {'value': 100}, 'sum_qty': {'value': 20}}
iter_match = iter(match)
for imatch in iter_match:
idate = imatch.value
# 偷懒分组
imatch = iter_match.next()
ibuckets = imatch.value
# print "[idate]", idate
# print "[ibuckets]", ibuckets
# [ibuckets] {'sum_amt': {'value': 10}, 'key': 'A', 'sum_qty': {'value': 5}}
# [ibuckets] {'sum_amt': {'value': 100}, 'key': 'B', 'sum_qty': {'value': 20}}
buckets_match = parse("$[*].key|(sum_qty.value)|(sum_amt.value)").find(ibuckets)
# [WARNING]: 多组,这里还要展开
ishop, isum_qty, isum_amt = [m.value for m in parse("$[*].key|(sum_qty.value)|(sum_amt.value)").find(ibuckets)]
lst.append({
'date': idate,
'shop': ishop,
'sum_qty': isum_qty,
'sum_amt': isum_amt,
print "[lst]", lst
elasticsearch 这种层次比较深的数据适合 xxxpath 技术访问
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
寫了一個 class, 結果應該跟你要的一樣:
from collections import abc
class CoolJSON:
def __init__(self, key, mapping):
key is the main key of this CoolJSON
mapping is the total data
self.key = key
self.mapping = dict(mapping)
def collect_bucket_item(self, item):
""" used to handle single bucket item"""
lst = [{}]
for key, value in item.items():
if key=='key':
dic[self.key] = value
elif isinstance(value, abc.MutableMapping):
if 'buckets' in value:
lst = CoolJSON(key, value).collect()
elif 'value' in value:
dic[key] = value['value']
for item in lst:
item.update(dic)
return lst
def collect(self):
"""used to collect results from all bucket items"""
results = []
for item in self.mapping['buckets']:
results.extend(self.collect_bucket_item(item))
return results
# 測資使用 prolife 在評論下方新給的測資
lst = CoolJSON('date', data['date']).collect()
for item in lst:
print(item)
{'sum_amt': 3651755, 'sum_qty': 36927, 'date': '', 'shop': 'A'}
{'sum_amt': 436019, 'sum_qty': 12115, 'date': '', 'shop': 'B'}
{'sum_amt': 1310549, 'sum_qty': 8896, 'date': '', 'shop': 'C'}
{'sum_amt': , 'sum_qty': 212909, 'date': '', 'shop': 'A'}
{'sum_amt': 5105368, 'sum_qty': 40109, 'date': '', 'shop': 'B'}
{'sum_amt': 938102, 'sum_qty': 28156, 'date': '', 'shop': 'C'}
我知道這可能不是你要的答案, 不過我不是很清楚你遇到的資料的狀況, 所以我先拋出一版, 再來看怎麼調整到可以處理你的需求, 以下是一個把這份資料想得很單純的無腦寫法:
for item in data['date']['buckets']:
dic['date'] = item['key']
dic['shop'] = item['shop']['buckets'][0]['key']
dic['sum_qty'] = item['shop']['buckets'][0]['sum_qty']['value']
dic['sum_amt'] = item['shop']['buckets'][0]['sum_amt']['value']
lst.append(dic)
print(lst)
我回答過的問題:
分享到微博?
Hi,欢迎来到 SegmentFault 技术社区!⊙▽⊙ 在这里,你可以提出编程相关的疑惑,关注感兴趣的问题,对认可的回答投赞同票;大家会帮你解决编程的问题,和你探讨技术更新,为你的回答投上赞同票。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
扫扫下载 App
SegmentFault
一起探索更多未知

我要回帖

更多关于 单变量求解 的文章

 

随机推荐