文档文档

使用字典

字典类型是键值对的集合,其中键和值都具有相同的类型。

字典语法

字典字面量包含一组键值对(也称为元素),用方括号 ([]) 括起来。元素之间用逗号分隔。键必须都属于同一类型。值必须都属于同一类型。键通过冒号 (:) 与值关联。

字典示例
[0: "Sun", 1: "Mon", 2: "Tue"]

["red": "#FF0000", "green": "#00FF00", "blue": "#0000FF"]

[1.0: {stable: 12, latest: 12}, 1.1: {stable: 3, latest: 15}]

引用字典值

Flux 字典是键索引的。要引用字典中的值

  1. 导入 dict

  2. 使用 dict.get() 并提供以下参数

    • dict:要引用的字典
    • key:要引用的键
    • default:如果键不存在时返回的默认值
import "dict"

positions =
    [
        "Manager": "Jane Doe",
        "Asst. Manager": "Jack Smith",
        "Clerk": "John Doe",
    ]

dict.get(dict: positions, key: "Manager", default: "Unknown position")
// Returns Jane Doe

dict.get(dict: positions, key: "Teller", default: "Unknown position")
// Returns Unknown position

操作字典

从列表创建字典

  1. 导入 dict
  2. 使用 dict.fromList()记录数组创建字典。每个记录都必须具有 keyvalue 属性。
import "dict"

list = [{key: "k1", value: "v1"}, {key: "k2", value: "v2"}]

dict.fromList(pairs: list)
// Returns [k1: v1, k2: v2]

将键值对插入字典

  1. 导入 dict
  2. 使用 dict.insert() 将键值对插入字典。如果键已存在,则会用新值覆盖。
import "dict"

exampleDict = ["k1": "v1", "k2": "v2"]

dict.insert(dict: exampleDict, key: "k3", value: "v3")
// Returns [k1: v1, k2: v2, k3: v3]

从字典中删除键值对

  1. 导入 dict
  2. 使用 dict.remove() 从字典中删除键值对。
import "dict"

exampleDict = ["k1": "v1", "k2": "v2"]

dict.remove(dict: exampleDict, key: "k2")
// Returns [k1: v1]

返回字典的字符串表示形式

使用 display() 返回字典的 Flux 字面量表示形式作为字符串。

x = ["a": 1, "b": 2, "c": 3]

display(v: x)

// Returns "[a: 1, b: 2, c: 3]"

在表格中包含字典的字符串表示形式

使用 display() 返回字典的 Flux 字面量表示形式作为字符串,并将其作为列值包含在内。

import "sampledata"

sampledata.string()
    |> map(fn: (r) => ({_time: r._time, exampleDict: display(v: ["tag": r.tag, "value":r._value])}))

输出

_time (时间)exampleDict (字符串)
2021-01-01T00:00:00Z[tag: t1, value: smpl_g9qczs]
2021-01-01T00:00:10Z[tag: t1, value: smpl_0mgv9n]
2021-01-01T00:00:20Z[tag: t1, value: smpl_phw664]
2021-01-01T00:00:30Z[tag: t1, value: smpl_guvzy4]
2021-01-01T00:00:40Z[tag: t1, value: smpl_5v3cce]
2021-01-01T00:00:50Z[tag: t1, value: smpl_s9fmgy]
2021-01-01T00:00:00Z[tag: t2, value: smpl_b5eida]
2021-01-01T00:00:10Z[tag: t2, value: smpl_eu4oxp]
2021-01-01T00:00:20Z[tag: t2, value: smpl_5g7tz4]
2021-01-01T00:00:30Z[tag: t2, value: smpl_sox1ut]
2021-01-01T00:00:40Z[tag: t2, value: smpl_wfm757]
2021-01-01T00:00:50Z[tag: t2, value: smpl_dtn2bv]

此页内容是否对您有帮助?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像当前一样使用它,而无需对您的代码进行任何更改。

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

InfluxDB 3 Core 是一个开源、高速、最近数据引擎,可实时收集和处理数据,并将其持久化到本地磁盘或对象存储。InfluxDB 3 Enterprise 构建在 Core 的基础上,增加了高可用性、读取副本、增强的安全性以及数据压缩功能,以实现更快的查询和优化的存储。InfluxDB 3 Enterprise 的免费层可供非商业家庭或业余爱好者使用。

有关更多信息,请查看