用于在dict接口中包装数据存储的库。

dictwrap的Python项目详细描述


Build StatusPyPI

听写纸

用于在字典接口中包装持久数据存储的python库。

JSON指令

示例用法:

from dictwrap import json_dict

config = json_dict("config_file.json")
config["hello"] = "world"

这将围绕config_file.json的内容建立字典包装。对字典的更改将自动写入json文件。

覆盖对json文件的自动更新并手动保存更改:

from dictwrap import json_dict

config = json_dict("config_file.json", autosave=False)

config["hello"] = "world"  # This change is not written to the file yet.
config.save()  # The change is now written to the file.

SQL行

示例用法:

from dictwrap import sql_row

row = sql_row("db_driver://user:pass@host/db_name", table="example", lookup_field="id", lookup_value=1)

默认情况下,在调用save方法之前,您不会将保存更改设置为附加项:

row["foo"] = "bar"  # Not saved to the database yet.
row.save()    # Database is now updated.

在创建行时,您可以使用autosave属性覆盖它:

row = sql_row("sqlite://", table="example", lookup_field="id", lookup_id=1, autosave=True)
row["foo"] = "bar"  # Database is automatically updated.

要从数据库更新字典的数据,请调用refresh方法:

row.refresh()

通过在创建行时使用autorefresh属性,每当在字典中查找键值时,都将从数据库中更新数据:

row = sql_row("sqlite://", table="example", lookup_field="id", lookup_id=1, autorefresh=True)
print(row["foo"])  # Accessing the key now calls the database to update any data that has been changed.

如果只需要将数据库中的某些字段包含在字典中,则在创建行时传递字段名列表:

row = sql_row("sqlite://", table="example", lookup_field="id", lookup_id=1, fields=["foo", "bar"])

若要在数据库中创建新行,请不要提供lookup_fieldlookup_id属性,并将字典传递到data属性:

row = sql_row("sqlite://", table="example", update={"foo": "bar"})
# Creates a row in the `example` table with the `foo` field set to "bar".

您需要为此工作提供数据库所需的所有字段的有效数据。

csv_行

示例用法:

from dictwrap import csv_row

row = csv_row("file_path.csv", row_id=0)

这将创建一个字典,用于读取和写入提供的csv文件的第一行。(记住索引号数组的起始位置。)

您可以通过行号或通过为要查找的行传递带键值对的字典来标识csv文件中要在字典中包装的行。例如,如果csv文件有一个名为Author的字段,您就可以像这样查找Ursula LeGuin的行:

row = csv_row("authors.csv", row_id={"Author": "Ursula LeGuin"})

默认情况下,将从csv文件的第一行读取字段名。如果文件缺少这样的标题行,字段名可以显式地作为列表传递:

row = csv_row("authors.csv", row_id=1, fieldnames=["ID", "Name", "Rating"])

API U记录

示例用法:

from dictwrap import api_record

record = api_record("httsp://fake.org/api/record/1/", auth=("user", "pass"))

这将调用提供的url端点上的get-request方法,并提供元组中提供的用于身份验证的用户名/密码。saving将调用同一方法上的patch方法。稍后我打算为这种类型创建更多的灵活性。

联系人

这个项目显然开发得很早。我开始创建一个易于安装的包,里面有一些字典包装,我发现自己经常重写。为了好玩,我添加了更多的类型。

请通过psbleep@protonmail.com与我联系,或者在github上打开一个问题/请求,其中包含问题、建议或改进。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java迷宫解算器在死胡同中陷入循环   java JPA在一个查询中检索2个列表   java正则表达式匹配文档中两个字符串之间的所有字符   java更改JTable标题高度   安卓忽略调试库中的java代码   java使用ScheduledExecutorService延迟Spring WebClient调用不会等待响应   如何使用Java将包含JSON对象的字符串转换为实际的JSON   sqlite数据库连接:java。Lang.ClassNotFoundException:org。sqlite。JDBC   在MySQL中存储表情符号的java获取错误字符串值错误   当发送包含超过一定大小字节数据的对象时,安卓 Java StreamCorruptedException   Java游戏旋转图像和轴   java IntelliJ Idea:无法解析实体类的列   Android中带有editText的java AlertDialog   map only和mapreduce应用程序之间的java差异   如何在Kotlin编写的接口中使用默认方法的Java8特性   java CPU时间百分比算法问题   java如何在WEBINF文件夹中使用带有JAR的taglibs JSTL/core   有没有办法在Java中找到JPanel和/或JFrame的长度和宽度?