【解決方法】Python コードを VB に変換するには?

プログラミングQA


Python を vb.net コードに変換する方法は? ほとんどのコードを変換できますが、「title」などの json 値を比較する方法や、以下の Python コードに示すように accessURL を取得する方法がわかりません。

フィトンコード

Python
url = "https://data.cms.gov/data.json"
title= "Specific Chronic Conditions"
time_period = "2017-01-01/2017-12-31"
response = requests.request("GET", url)

if response.ok:
 response = response.json()
 dataset = response['dataset']

 for set in dataset:
    if title == set['title']:
      for distro in set['distribution']:
        if 'format' in distro.keys():
          if distro['format'] == "API" and distro['temporal'] == time_period:
                 print(f"API link for {title} from {time_period} is
{distro['accessURL']}")

私が試したこと:

JSON文字列を文字列に変換することはできますが、値を「タイトル」と同じように比較して、タイトルに基づいてアクセスURLを取得する方法がわかりません

VB コード

VB
Sub btnGetJson_Click(sender As Object, e As EventArgs)
  
      Dim URL1 = "https://data.cms.gov/data.json"
      Dim title = "Specific Chronic Conditions"
      Dim time_period = "2017-01-01/2017-12-31"

        Dim url As String = URL1
        Dim webRequest As WebRequest = webRequest.Create(url)
        Dim request As HttpWebRequest = CType(webRequest, HttpWebRequest)
        request.Method = "GET"
        request.ContentType = "application/json"

        Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)
        Dim jsonString As String = ""

        Using reader As StreamReader = New StreamReader(response.GetResponseStream())
            jsonString = reader.ReadToEnd()
        End Using

    End Sub

解決策 1

これはコード変換サービスではありません。コードを翻訳するためにここにいるわけではありません。
仮にそうしたとしても、最終的にターゲット言語の「良いコード」にはなりません。それらは非常に異なるフレームワークに基づいており、ある言語で何かを機能させるものが必ずしも別の言語に直接「翻訳」されるとは限りません。
そのため、最終的には非常に貧弱なコードになり、メンテナンスが不可能ではないにしても難しく、適切にアップグレードできず、元のコードが変更された場合に大きな頭痛の種になります。 そして、「箱から出してすぐに」機能しない場合、デバッグするのは悪夢です。
代わりに、ソース コードを新しいアプリの仕様とターゲット言語/フレームワークの仕様として使用し、オリジナルを “テンプレート” として使用してゼロから記述します。 はるかに優れた結果が得られ、長期的には多くの時間を節約できます。

この場合、Newtonsoft.Json (NuGet 経由でプロジェクトにインストールできます) を確認し、それを使用して JSON データを VB コードで直接使用できるクラスに変換することを強くお勧めします。

コメント

タイトルとURLをコピーしました