d3 - 控制台中的csv文件标题行,如果字符串类型
问题描述:
我正在使用d3执行csv文件的数据可视化。 的CSV看起来是这样的:d3 - 控制台中的csv文件标题行,如果字符串类型
UserId,Reputation,Name,Tags
22656,985942,Jon Skeet,"<c#><google-cloud-platform><google-cloud-datastore><google-authentication>,<msbuild><asp.net-core><mono><.net-core><travis-ci>,<.net><nuget><.net-core><visual-studio-2017><csproj>,<.net><md5>,<c#><wpf><xaml><globalization>,<java><c#><variables><object><reference>,<java><newline>,<c#><.net><debugging><compiler-errors><jit>,<git><git-reset><git-revert><git-clean>,<git>,<java><generics> "
我的index.html是这样的:
d3.csv("UsersFavTags.csv", function(data){
console.log(data[0]);
for(i=0;i<data.length;i++){
data[i].Tags = createTagArray(data[i].Tags)
}
data.forEach(function(d){
console.log("d: "+d);
d.Tags = createTagArray(d.Tags);
d.CountedTags = listOccurence(d.Tags);
d.Tags = listUnique(d.Tags);
});
console.log(data);
});
然而,在控制台输出看起来像:
{UserId: "22656", Reputation: "985942", Name: "Jon Skeet", "Tags ": "<c#><google-cloud-platform><google-cloud-datastore… "}
注意Tags
是字符串类型,它是"Tags "
这使我无法访问的值Tags
答
可以使用["Tags "]
语法访问"Tags "
属性:
var object = {UserId: "22656", Reputation: "985942", Name: "Jon Skeet", "Tags ": "some string"};
console.log(object["Tags "]);
您也可以处理你data
,并在年底创建没有空间物体:
var data = [
{UserId: "22656", Reputation: "985942", Name: "Jon Skeet", "Tags ": "some string"},
{UserId: "22657", Reputation: "985943", Name: "Jon Skeet II", "Tags ": "another string"},
];
data.forEach(function(item){
item.Tags = item["Tags "]; // store value to the propety without space
delete item["Tags "]; // delete property with space
});
console.log(data);
谢谢我有道理!但是你知道是什么原因导致我的csv文件数据数组有'标签'字符串类型吗? –
我认为这是因为在你的csv文件中是一个空格字符后面的“标签”单词 - ''UserId,声誉,名称,标签“' –
你也可以考虑指定一个可以修复”标签“问题的访问函数数据被解析。有关更多详细信息,请参阅此文档。 https://github.com/d3/d3-3.x-api-reference/blob/master/CSV.md#parse – John