#python #json #zingchart
Вопрос:
def algorithm():
model = {
'crit_value': 1.5,
'max_value': 2,
'org_values': [-0.9, -1.85, 1, -1.9, 0.75, 0.5, 3, -2, 1.3, -1.5, -0.9, 1.7],
'limited_values': []
}
return model
def describeChartInJson(model):
conf = {
'type': 'hbar',
'scale-x': {
'values': '1:12:1',
'guide': {
'line-color': 'lightgrey',
'line-width': 1,
'line-style': 'solid',
'visible': 'true'
},
'rules': [
{
'rule': '%v >=1 amp;amp; %v <= 9',
'format': 'L0%v',
},
{
'rule': '%v>=10',
'format': 'L%v',
},
],
'item': {
'offsetY': "-20"
}
},
'scale-y': {
'offset-end': '69%',
'values': '-2:2:2'
},
'scale-y-2': {
'placement': 'default',
'blended': 'true',
'offset-start': '33%',
'offset-end': '35%',
'values': '-2:2:2',
},
'scale-y-3': {
'placement': 'default',
'blended': 'true',
'offset-start': '67%',
'values': '-2:2:2'
},
'series': [{
'scales': 'scale-x,scale-y',
'values': model['org_values']
},
{ 'scales': 'scale-x,scale-y-2',
'values': model['org_values']
},
{
'scales': 'scale-x,scale-y-3',
'values': model['org_values']
}
],
'plot': {
'aspect': 'cone',
'rules': [
{
'rule': '%v >= model[crit_value]',
'backgroundColor': 'red',
},
{
'rule': '%v <= -1.5',
'backgroundColor': 'red',
},
{
'rule': '%v >= -1.5 amp;amp; %v <= 1.5',
'backgroundColor': 'grey'
}]
}
}
return conf
def run(get_parameters):
model = algorithm()
return describeChartInJson(model)
Может ли кто-нибудь сказать мне, почему это правило («правило»: «%v >= модель[значение критерия]») не распознается?
Из того , что я понял, модель[crit_value] возвращает значение с плавающей точкой и сравнивает его с %v, значением с плавающей точкой.
Когда я попробовал это («правило»: «%v » > = float (модель [«значение критерия»]), я получаю ошибку «> > = » не поддерживается между экземплярами «str» и «float»
Ответ №1:
Правило ('rule': '%v >= model[crit_value]')
не работает, потому что это строка. Вам нужно будет отправить значение model['crit_value']
, а не строку.
Попробуй ('rule': '%v >= ' model['crit_value'])
вместо этого.
Комментарии:
1. Спасибо вам за ваш ответ. Это работает: «правило»: «%v >» str(модель[«значение критерия»])