[{ "name": "广州", "adcode": 440100},{ "name": "广州", "adcode": 440100}] 转成List C#
时间: 2023-12-01 16:02:24 浏览: 46
以下是将给定的json字符串转换为List的C#代码:
```csharp
using System;
using System.Collections.Generic;
using Newtonsoft.Json;
public class City
{
public string name { get; set; }
public int adcode { get; set; }
}
public class Program
{
public static void Main()
{
string json = @"[{""name"":""广州"",""adcode"":440100},{""name"":""广州"",""adcode"":440100}]";
List<City> cities = JsonConvert.DeserializeObject<List<City>>(json);
foreach (City city in cities)
{
Console.WriteLine(city.name + " " + city.adcode);
}
}
}
```
输出结果为:
```
广州 440100
广州 440100
```
相关问题
sqlvalidatorexception: column 'adcode' not found in any table
SQLValidatorException: 在任何表中都找不到列'adcode'。
这个异常表示在查询中尝试访问名为'adcode'的列时发生了错误,因为在所有表中都找不到这个列。这可能是由于以下几个原因引起的:
1. 列名拼写错误:请确保在查询字符串中正确拼写了列名'adcode'。SQL是大小写敏感的,所以确保大小写匹配。
2. 列不存在:确保在查询的表中确实存在一个名为'adcode'的列。请检查表的结构,查看是否有这个列。
3. 列位于不同的模式/架构中:在某些数据库中,表可以被组织到不同的模式或架构中。如果'adcode'列位于不同的模式/架构中,则需要在查询中指定正确的表限定符来访问该列。
4. 列位于不同的数据库中:如果使用了分布式数据库系统或跨数据库查询,确保在正确的数据库中访问'adcode'列。
解决此问题的步骤如下:
1. 仔细检查SQL查询语句,确保列名拼写正确。
2. 检查表结构,确保表中存在名为'adcode'的列。
3. 如果列位于不同的模式/架构中,请使用正确的表限定符来访问列。
4. 对于分布式数据库系统或跨数据库查询,请确保在正确的数据库中访问列。
通过排除以上可能导致问题的原因,您应该能够解决这个SQLValidatorException异常。
将 for index, adcode_dict in enumerate(adcode_list, 1): adcode = adcode_dict["adcode"] full_url = base_url + adcode response = requests.get(full_url) json_data = response.json() try: weather_name = json_data.get("data").get("data")[0].get("live").get("weather_name") adcode_dict["weather_name"] = weather_name if weather_name == '晴': sunny += 1 elif weather_name == '多云': cloud += 1 elif weather_name == '阴': being_cloud += 1 elif '雨' in weather_name: rain += 1 else: haze += 1 print(index, adcode_dict) except Exception as e: print(e)变成一个生成器函数
可以将上述代码转化为一个生成器函数,如下所示:
```python
import requests
def get_weather_info(adcode_list):
base_url = "http://xxx.xxx.xxx.xxx/weather/"
sunny = 0
cloud = 0
being_cloud = 0
rain = 0
haze = 0
for index, adcode_dict in enumerate(adcode_list, 1):
adcode = adcode_dict["adcode"]
full_url = base_url + adcode
response = requests.get(full_url)
json_data = response.json()
try:
weather_name = json_data.get("data").get("data")[0].get("live").get("weather_name")
adcode_dict["weather_name"] = weather_name
if weather_name == '晴':
sunny += 1
elif weather_name == '多云':
cloud += 1
elif weather_name == '阴':
being_cloud += 1
elif '雨' in weather_name:
rain += 1
else:
haze += 1
yield index, adcode_dict
except Exception as e:
print(e)
```
这个生成器函数会依次返回每个地区的天气信息,并且会统计出晴、多云、阴、雨、霾的数量。你可以使用`next()`或者`for`循环来获取每个地区的天气信息。例如:
```python
adcode_list = [...] # 假设这里是一些地区的adcode列表
gen = get_weather_info(adcode_list)
for index, adcode_dict in gen:
print(f"地区{index}的天气信息:{adcode_dict['weather_name']}")
```