Перевести кусок кода из python в c#

LifeIsCool

Client
Регистрация
12.12.2015
Сообщения
44
Благодарностей
4
Баллы
8
Здравствуйте. Имеется программа, написанная на python. В ней есть часть, которая мне нужна для зеннопостер (парсер). Подскажите как перевести код из python в c#. Код на питоне следующий:

Python:
def get_resourses(name: str) -> dict:
    response = requests.get(URL.RESOURSES, json={"account_name": name}).json()
    try:
        cpu = round(response['cpu_limit']['used'] / response['cpu_limit']['max'] * 100, 2)
      
        return {
            'cpu': cpu
        }
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
Гет запрос получает какойто Json в котором значение по пути ..['used'] делится на ..['max'] умножается на 100 и округляется до двух цифр.. если не ошибаюсь
 
  • Спасибо
Реакции: LifeIsCool
Регистрация
05.06.2019
Сообщения
570
Благодарностей
453
Баллы
63
Здравствуйте. Имеется программа, написанная на python. В ней есть часть, которая мне нужна для зеннопостер (парсер). Подскажите как перевести код из python в c#. Код на питоне следующий:

Python:
def get_resourses(name: str) -> dict:
    response = requests.get(URL.RESOURSES, json={"account_name": name}).json()
    try:
        cpu = round(response['cpu_limit']['used'] / response['cpu_limit']['max'] * 100, 2)

        return {
            'cpu': cpu
        }
примерно так, но честно на змеином не шарю

C#:
var get = ZennoLab.InterfacesLibrary.Enums.Http.HttpMethod.GET;
var url = "";
var content = "";
var contentType = "";

var response = ZennoPoster.HTTP.Request(get, url, content, contentType);
dynamic json = null;

try
{
    json = Global.ZennoLab.Json.Linq.JObject.Parse(response);
}
catch (Exception ex)
{
    project.SendErrorToLog("Ошибка: " + ex.Message, true);
    throw;
}

System.Globalization.NumberStyles style = System.Globalization.NumberStyles.AllowDecimalPoint;
System.Globalization.CultureInfo culture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");

decimal.TryParse((string)json?.cpu_limit?.used, style, culture, out decimal used);
decimal.TryParse((string)json?.cpu_limit?.max, style, culture, out decimal max);

if (max == 0) {
    throw new DivideByZeroException("Попытка деления на нуль.");
}

var cpu = Math.Round(used / max * 100, 2);
return cpu;
 
Последнее редактирование:
  • Спасибо
Реакции: BAZAg и LifeIsCool

LifeIsCool

Client
Регистрация
12.12.2015
Сообщения
44
Благодарностей
4
Баллы
8
Гет запрос получает какойто Json в котором значение по пути ..['used'] делится на ..['max'] умножается на 100 и округляется до двух цифр.. если не ошибаюсь
Вроде так))
 
  • Спасибо
Реакции: SergSh

LifeIsCool

Client
Регистрация
12.12.2015
Сообщения
44
Благодарностей
4
Баллы
8
примерно так, но честно на змеином не шарю

C#:
var get = ZennoLab.InterfacesLibrary.Enums.Http.HttpMethod.GET;
var url = "";
var content = "";
var contentType = "";

var response = ZennoPoster.HTTP.Request(get, url, content, contentType);
dynamic json = null;

try
{
    json = Global.ZennoLab.Json.Linq.JObject.Parse(response);
}
catch (Exception ex)
{
    project.SendErrorToLog("Ошибка: " + ex.Message, true);
    throw;
}

System.Globalization.NumberStyles style = System.Globalization.NumberStyles.AllowDecimalPoint;
System.Globalization.CultureInfo culture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");

decimal.TryParse((string)json?.cpu_limit?.used, style, culture, out decimal used);
decimal.TryParse((string)json?.cpu_limit?.max, style, culture, out decimal max);

if (max == 0) {
    throw new DivideByZeroException("Попытка деления на нуль.");
}

var cpu = Math.Round(used / max * 100, 2);
return cpu;
var url = "" сюда на сколько я понимаю вводим урл, с которого парсим
var content = "" сюда вроде значение, по которому парсим
var contentType = "" а это тогда что?
 
Регистрация
05.06.2019
Сообщения
570
Благодарностей
453
Баллы
63
var url = "" сюда на сколько я понимаю вводим урл, с которого парсим
var content = "" сюда вроде значение, по которому парсим
var contentType = "" а это тогда что?
тип контента, типо: application/json
 
  • Спасибо
Реакции: LifeIsCool

LifeIsCool

Client
Регистрация
12.12.2015
Сообщения
44
Благодарностей
4
Баллы
8

LifeIsCool

Client
Регистрация
12.12.2015
Сообщения
44
Благодарностей
4
Баллы
8
Вроде бы разобрался, но пошёл по другому пути. Спарсил значения с сайта, положил в переменные во вкладке Json. Теперь мне нужно одну переменную разделить на другую и умножить на 100%, и чтобы знаков после запятой было не много. Облазил форум в поисках калькулятора, но то, что я нашёл мне не подошло, выдаёт ошибку когда выполняется код. Подскажите плиз как сделать калькулятор.
 

radv

Client
Регистрация
11.05.2015
Сообщения
3 680
Благодарностей
1 863
Баллы
113
Что-то не выходит(( выдаёт ошибку Выполнение действия CSharp OwnCode. [Строка: 29; Cтолбец: 0] Попытка деления на нуль.
Так сделайте проверку значений в переменных. И для деления чтобы значения были числами, а не строковыми значениями. Приводите их в числовой тип из строки или конвертируйте и только тогда выполняйте арифметические действия.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)