Quantcast
Channel: VBForums - Visual Basic .NET
Viewing all articles
Browse latest Browse all 27412

How to convert this Python function to Vb.Net?

$
0
0
I'm Using an API example that transform a string into a dictionary and then calculate its md5. Unfortunately there is just a python example and I never developer in this language. So far I tried my best and I'll append what I did. Python code:
Code:

import hashlib
import json

def params_string_to_dict(params_str):
  params = params_str.split("&")
  params_dict = {}
  for param in params:
    key, value = param.split("=")
    params_dict[key] = value
  return params_dict

def params_dict_to_string(params_dict):
  params_str = ""
  items = params_dict.items()
  for key, value in items:
    params_str += key + '=' + value + '&'
  return params_str[:-1]

def add_sign_to_params(params_dict, api, secret):
    params_dict['api_key'] = api
    params_str = json.dumps(params_dict, sort_keys=True, indent=4)
    params_str = params_dict_to_string(json.loads(params_str))
    params_str += '&secret_key=' + secret
    hash_md5 = hashlib.md5(params_str.encode(encoding='utf-8'))
    sign = hash_md5.hexdigest().upper()
    params_dict['sign'] = sign
    return params_dict

params_url="Api url"
params_str = "Api endpoint".replace(" ", "")
params_dict = params_string_to_dict(params_str)
#print(params_dict)
params_dict = add_sign_to_params( params_dict,"Key", "Secret Key") 
#print(params_dict)
params_str = params_dict_to_string(params_dict)
print( params_url +"?" + params_str)

What I tried so far is:

Code:

Option Strict On
Imports System.Text

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    End Sub

    Dim value() As String
    Dim key() As String
    Public Function params_string_to_dict(params_str As String)

        Dim params() As String
        params = params_str.Split(CChar("&"))
        Dim params_dict As String
        params_dict = Nothing

        For Each param In params
            value = param.Split(CChar("="))
            key = param.Split(CChar("="))

            params_dict{key} = value
  Next
        Return params_dict
    End Function
    Public Function params_dict_to_string(params_dict As String)
        Dim params_str As String
        params_str = ""
        Dim items As String
        items = params_dict.items()
        For Each key And value in items
            params_str += key & "=" & value & "&"
        Next
        Return params_str(-1)
    End Function
    Dim params_dict As String
    Public Function add_sign_to_params(params_dict As String, api As String, secret As String)
        Dim params_dict As String
        params_dict("api_key") = api
        Dim params_str As String
        params_str = json.dumps(params_dict, sort_keys = True, indent = 4)
        params_str = params_dict_to_string(json.loads(params_str))
        params_str += "&secret_key=" + secret
        Dim hashlibmd5(params_strencode(Encoding, As Object))
        Dim hash_md5 As Integer
        hashlibmd5(params_strencode(Encoding = "utf-8"))
        hash_md5 = hashlibmd5(params_strencode(Encoding))
        Dim sign As Integer
        sign = hash_md5.hexdigest().upper()
        params_dict("sign") = sign

        Return params_dict
    End Function

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim params_url As String = "https://api.hotbit.io/api/v1/balance.history"
        Dim params_str As String = "API endpoint".Replace(" ", "")
        Dim params_dict As String = params_string_to_dict(params_str)

        Dim params_dict As String = add_sign_to_params(params_dict, "Key", "Secret")

        Dim params_str As String = params_dict_to_string(params_dict)
        Console.WriteLine(params_url + "?" + params_str)
    End Sub
End Class


But I got some errors because some of the things are quite difficult for me to convert into vb.net For example, how can I use params_XXX without declaring them? Why is it using the word Json while basically I need to pass a String to it?

I got roughly 25 errors and most of them are in the Public Function add_sign_to_params . It is really difficult for me to convert these functions into vb.net as they might have different construction in python.

I am not asking for a ready code, I'm asking help to convert it step by step.
For example, I've already searched on google how to convert a string to md5, but this code is not just converti a string to md5, it is using kind of weird and complex ( to me ) structures like "sort_keys = True, indent = 4)"..

Thanks

Viewing all articles
Browse latest Browse all 27412

Latest Images

Trending Articles



Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>