Вы можете использовать ChainMap
, чтобы сначала сгладить свой список словарей, а затем применить модуль Counter
, чтобы получить частоту имен для каждого месяца. Затем вы можете извлечь названия месяцев и соответствующие частоты и построить их с помощью гистограммы. Ниже приведен пример ответа с использованием предоставленных вами данных. Если вы хотите отсортировать названия месяцев по оси X, вы можете использовать ответ, предоставленный здесь .
from collections import Counter, ChainMap
import matplotlib.pyplot as plt
figure = plt.figure(figsize=(8, 6))
dictionary = [{"bob": "January"},{"Peter":"February"},{"Mary":"March"}, {"John":"March"},
{"Sully": "March"}, {"Kai":"April"} ,{"Jerry": "February"}, {"Polly":"may"},
{"Nina": "June"}, {"Mic": "July"}, {"Paul": "August"}, {"Ferry": "January"}]
dict_flat = ChainMap(*dictionary)
frequency = Counter(dict_flat.values()).most_common()
x, y = zip(*frequency)
plt.bar(x, y, width=0.5)
plt.show()
Неродной 1
open -> Visual Studio 2017 Developer Command Prompt
неродной 2
WSDL.exe /OUT:myFile.cs WSDLURL /Language:CS /serverInterface
неродной 2
создают новый "Проект веб-сервиса"
неродной 3
, добавляют-> веб-сервис
неродной 4
копия весь код от [1 121] myFile.cs (сгенерированный выше) кроме [1 122] "классы использования" , например:
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.6.1055.0")]
[System.Web.Services.WebServiceBindingAttribute(Name="calculoterServiceSoap",Namespace="http://tempuri.org/")]
public interface ICalculoterServiceSoap {
/// <remarks/>
[System.Web.Services.WebMethodAttribute()]
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/addition", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
string addition(int firtNo, int secNo);
}
неродной 4
прошлое это в Ваш webService.asmx.cs (в пространство имен ) создает выше в неродной 2
неродной 5
, наследовали интерфейсный класс с Вашим классом веб-сервиса, например:
public class WebService2 : ICalculoterServiceSoap
К сожалению, волшебного решения для того, что вы ищете, не существует. Вот что вы можете сделать:
создать класс интерфейса с помощью этой команды в окне командной строки Visual Studio:
wsdl.exe yourFile.wsdl / l: CS / serverInterface
Используйте VB или CS для вашего языка выбор. Будет создан новый файл .cs
или .vb
.
Создайте новый проект веб-службы .NET. Импортируйте существующий файл в свой проект - файл, который был создан на шаге выше.
В вашем файле .asmx.cs
в Code-View измените свой класс как таковой:
public class MyWebService : System.Web.Services.WebService, IMyWsdlInterface
{
[WebMethod]
public string GetSomeString()
{
//you'll have to write your own business logic
return "Hello SOAP World";
}
}
Вы не можете гарантировать, что автоматически сгенерированный WSDL будет соответствовать WSDL, из которого вы создаете интерфейс службы.
В вашем сценарии вам следует разместить файл WSDL где-нибудь на своем веб-сайте, и пусть потребители используют этот URL. Вы должны отключить протокол Documentation
в файле web.config, чтобы "? Wsdl" не возвращал WSDL. См. <протоколы>
Элемент .
Также обратите внимание на первый абзац этой статьи:
Этот раздел относится к устаревшей технологии. Веб-службы XML и клиенты веб-служб XML теперь должны быть созданы с использованием Windows Communication Foundation (WCF) .
Я тоже столкнулся с этой проблемой в некотором коде, Насколько я понимаю свойства командной строки wsdl.exe, это именно то, что вам нужно.
- ADVANCED -
/ server
Server switch has been deprecated. Please use /serverInterface instead.
Generate an abstract class for an xml web service implementation using
ASP.NET based on the contracts. The default is to generate client proxy
classes.
С другой стороны: зачем вам создавать устаревшие технологические решения? Почему бы не создать эту веб-службу как службу WCF. Это текущий и более современный, гораздо более гибкий способ сделать это!
Marc
ОБНОВЛЕНИЕ:
Когда я использую wsdl / server
в файле WSDL, я создаю этот файл:
[WebService(Namespace="http://.......")]
public abstract partial class OneCrmServiceType : System.Web.Services.WebService
{
/// <remarks/>
[WebMethod]
public abstract void OrderCreated(......);
}
По сути, это практически тот же код, который создается, когда вы добавляете файл ASMX в свое решение (в коде за файлом - yourservice.asmx.cs). Я не думаю, что вы можете приблизиться к созданию файла ASMX из файла WSDL.
Вы всегда можете добавить «yourservice.asmx» вручную - он действительно не содержит большого количества:
<%@ WebService Language="C#" CodeBehind="YourService.asmx.cs"
Class="YourServiceNamespace.YourServiceClass" %>
Вы можете сгенерировать классы прокси WS с помощью инструмента WSCF (Web Services Contract First) от thinktecture. com. По сути, ВЫ МОЖЕТЕ создавать веб-сервисы из wsdl. Создание asmx, может быть, и нет, но это легкое дело, не так ли? Этот инструмент прекрасно интегрируется в VS2005-8 (новая версия для 2010 / WCF называется WSCF-blue). Я использовал его много и всегда находил, что он действительно хорош.