我在Go中创建了一个API,在被调用时,执行查询,创建结构的实例,然后在发送回调用者之前将该结构编码为JSON.我现在想让调用者能够通过传入"fields"GET参数来选择他们想要返回的特定字段.
这意味着取决于字段值,我的结构会改变.有没有办法从结构中删除字段?或者至少动态地将它们隐藏在JSON响应中?(注意:有时候我有空值,所以JSON omitEmpty标签在这里不起作用)如果这些都不可能,那么是否有更好的方法来处理这个?提前致谢.
我正在使用的结构的较小版本如下:
type SearchResult struct {
Date string `json:"date"`
IdCompany int `json:"idCompany"`
Company string `json:"company"`
IdIndustry interface{} `json:"idIndustry"`
Industry string `json:"industry"`
IdContinent interface{} `json:"idContinent"`
Continent string `json:"continent"`
IdCountry interface{} `json:"idCountry"`
Country string `json:"country"`
IdState interface{} `json:"idState"`
State string `json:"state"`
IdCity interface{} `json:"idCity"`
City string `json:"city"`
} //SearchResult
type SearchResults struct {
NumberResults int `json:"numberResults"`
Results []SearchResult `json:"results"`
} //type SearchResults
Run Code Online (Sandbox Code Playgroud)
然后我编码并输出响应,如下所示:
err := json.NewEncoder(c.ResponseWriter).Encode(&msg)
Run Code Online (Sandbox Code Playgroud) 我想知道是否有人知道我在哪里可以获得正面和负面词汇的字典.我正在研究情绪分析,这是它的一个关键部分.
我的要求是接受新闻文章并确定它们对某个主题是积极的还是消极的.我正在采取下面概述的方法,但我继续阅读NLP可能在这里使用.我所读过的所有内容都指出NLP从事实中发现了一些意见,我认为这并不重要.我想知道两件事:
1)为什么我的算法不能工作和/或我如何改进它?(我知道讽刺可能是一个陷阱,但我再也看不到在我们将要获得的新闻类型中发生的很多)
2)NLP如何帮助,我为什么要使用它?
我的算法方法(我有正面,负面和否定词的字典):
1)计算文章中正面和负面词的数量
2)如果发现一个带有2或3个单词的否定词的否定词,(即:不是最好的)否定分数.
3)将分数乘以已手动分配给每个单词的权重.(1.0开始)
4)将正数和负数的总和相加以获得情绪分数.
我正在尝试创建一片地图.虽然代码编译得很好,但我得到下面的运行时错误:
mapassign1: runtime·panicstring("assignment to entry in nil map");
Run Code Online (Sandbox Code Playgroud)
我尝试制作一组地图,每个地图包含两个指标,一个"Id"和一个"投资者".我的代码看起来像这样:
for _, row := range rows {
var inv_ids []string
var inv_names []string
//create arrays of data from MySQLs GROUP_CONCAT function
inv_ids = strings.Split(row.Str(10), ",")
inv_names = strings.Split(row.Str(11), ",")
length := len(inv_ids);
invs := make([]map[string]string, length)
//build map of ids => names
for i := 0; i < length; i++ {
invs[i] = make(map[string]string)
invs[i]["Id"] = inv_ids[i]
invs[i]["Investor"] = inv_names[i]
}//for
//build Message and return
msg := InfoMessage{row.Int(0), row.Int(1), row.Str(2), row.Int(3), …Run Code Online (Sandbox Code Playgroud) 我想知道是否有人知道任何好的Perl模块和/或Java类用于情绪分析.我已经阅读了有关LingPipe的内容,但该程序最终需要用于商业用途,所以开源会更好.我也调查了GATE,但他们关于情绪分析的文档充其量只是稀疏的.
我一直在努力创建一个类似于谷歌财务图表的图表.我已经用Annotated Time Line Chart得到了我想要的几乎所有东西,除了我似乎无法弄清楚如何在图表的底部加入他们所拥有的音量信息.我想知道是否有人知道如何做到这一点或在哪里看,我一直在他们的API,但似乎无法找到它.
我最近使用CentOS 6.3安装了Go到我们的服务器上.安装似乎没有问题.但是我做了一个测试"hello world"脚本,当我运行时,我得到以下输出.
fork/exec /tmp/go-build967564990/command-line-arguments/_obj/a.out: permission denied
Run Code Online (Sandbox Code Playgroud)
现在运行go env或其他go命令似乎工作.起初我认为这是一个权限问题,但是以root用户身份运行我得到同样的东西.一个
我正在尝试采用我编写的Perl程序并对其进行处理.问题是我读到一些模块不是"线程安全的".我如何知道模块是否是线程安全的?我环顾四周找不到一个清单.
为了测试我经常使用的一个模块(Text :: CSV_XS),我尝试了以下代码:
use strict;
use warnings;
use threads;
use threads::shared;
require Text::CSV_XS;
my $CSV = Text::CSV_XS->new ({ binary => 1, eol => "\n" }) or die("Cannot use CSV: ".Text::CSV->error_diag());
open my $OUTPUT , ">:encoding(utf8)", "test.csv" or die("test.csv: $!");
share($CSV);
my $thr1 = threads->create(\&sayHello('1'));
my $thr2 = threads->create(\&sayHello('2'));
my $thr3 = threads->create(\&sayHello('3'));
sub sayHello
{
my($num) = @_;
print("Hello thread number: $num\n");
my @row = ($num);
lock($CSV);{
$CSV->print($OUTPUT, \@row);
$OUTPUT->autoflush(1);
}#lock
}#sayHello
Run Code Online (Sandbox Code Playgroud)
我收到的输出如下:
Hello thread number: 1 Segmentation fault …
我已经四处寻找,但还没有找到我正在寻找的东西.简而言之,我创建了一个bash脚本,在无限循环中运行,睡眠并检查进程是否正在运行.唯一的问题是即使进程正在运行,也表示它不是并打开另一个实例.
我知道我应该按进程名称检查而不是进程ID,因为另一个进程可以跳入并获取id.但是,所有perl程序在我的系统上都命名为Perl5.10.0,我打算打开同一个perl程序的多个实例.
以下"if"总是返回false,我在这里做错了什么???
while true; do
if [ ps -p $pid ]; then
echo "Program running fine"
sleep 10
else
echo "Program being restarted\n"
perl program_name.pl &
sleep 5
read -r pid < "${filename}_pid.txt"
fi
done
Run Code Online (Sandbox Code Playgroud) 我正在尝试通过HTTP将SHA256哈希字符串发送到服务器,我想通过执行SHA256哈希并验证两个匹配来进行身份验证.出于测试目的,我使用相同的字符串,但是我的结果不匹配.这可能是我的base64_encode调用的默认编码方案吗?谢谢.
在PHP我正在做:
$sha = hash("sha256", $url, true);
$sha = base64_encode(urlencode($sha));
Run Code Online (Sandbox Code Playgroud)
在Go我正在做
//convert string to byte slice
converted := []byte(to_hash)
//hash the byte slice and return the resulting string
hasher := sha256.New()
hasher.Write(converted)
return (base64.URLEncoding.EncodeToString(hasher.Sum(nil)))
Run Code Online (Sandbox Code Playgroud)