Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >无法用Python在MongoDB表中显示来自PySimpleGui数据库的数据

无法用Python在MongoDB表中显示来自PySimpleGui数据库的数据
EN

Stack Overflow用户
提问于 2020-09-03 09:43:31
回答 1查看 452关注 0票数 0

我试图在使用MongoDB库创建的windows窗体表中显示来自PySimpleGui数据库的数据。以下代码来自pySimpleGUI演示程序demo_test_element.py。

传递给成功地在表中显示数据的代码的数据如下所示:

[“狗”、“包”、“牛”、“群”]

在第二个示例中,数据被检索到游标中,然后放入列表中。在显示表时,我得到一个TypeError:只能连接列表(而不是"dict")来列出。当我打印列表的类型时,它被描述为,而不是字典。列表中数据的格式与示例程序中的格式不同。看起来是这样的:

{'_id':ObjectId('5f511b8a5d174ea26fbe2c64')、“名称”:“狗”、“集体”:'Pack'}、{'_id':ObjectId('5f511b8a5d174ea26fbe2c65')、“名称”:‘牛’、‘集体’:‘兽群’}

所以,我想我会尝试改变列表的格式,使之与成功的版本相同。我可以做到:

[“狗”、“包”、“牛”、“牛群”]如果没有双引号,它就会遵循成功的模式。在试图显示表中的数据时,错误是TypeError:只能连接列表(而不是"str")来列出

我对Python等还不熟悉,我可能做错了这件事。我更喜欢pySimpleGUI而不是Tkinter,因为我发现它更简单,但是我很乐意接受使用不同GUI库的建议。我习惯于使用关系数据库管理系统(主要是甲骨文),我选择MongoDB作为一个挑战,同样,我没有完全依附于它。

我试着使这个问题的代码尽可能简洁。

代码语言:javascript
运行
AI代码解释
复制
from pymongo import MongoClient
import PySimpleGUI as sg

# Display the data in a table
def windowStuff(data):
    headings = ["Animal","Collective"]
    layout = [[sg.Table(values=data[0:][:], headings=headings, max_col_width=25, display_row_numbers=True, num_rows=4, alternating_row_color='red',
                        key='-TABLE-', row_height=35)]]
    window = sg.Window('The Animals', layout,)
    while True:
        event, values = window.read()
        if event == sg.WIN_CLOSED:
            break
    window.close()

sg.theme('Black')

data = [["Dog", "Pack"],["Cattle","Herd"]] 
try:
    windowStuff(data)
    # This works
except Exception:
    pass

# Insert and return data into Mongo Database
client = MongoClient('mongodb://localhost:27017/')
db = client.testdb
db.colCreatures.drop()
docCreatures = [ {'name': 'Dog', 'collective': 'Pack'}, {'name': 'Cattle', 'collective': 'Herd'}]
db.colCreatures.insert_many(docCreatures)
curCreatures = db.colCreatures.find()

#Call the function to display the table with data, using a LIST
listCreatures = list(curCreatures)
try:
    windowStuff(listCreatures)
except Exception:
    # Error is File "..... \PySimpleGUI.py", line 11646, in PackFormIntoFrame
    # value = [i + element.StartingRowNumber] + value
    # TypeError: can only concatenate list (not "dict") to list
    pass
    
#Call the function to display the table after the list has been manipulated
data =[]
for creature in listCreatures:
    strCreature = ('[{0} {1}'.format(creature['name'] +',', creature['collective'] + ']'))
    strCreature = strCreature.replace('[', '[' + "'")
    strCreature = strCreature.replace(']' , "'" + ']')
    strCreature = strCreature.replace(', ', "'" + ',' + "'")
    data.append(strCreature)
try:
    windowStuff(data)
except Exception:
    # Error is File "....\PySimpleGUI.py", line 11646, in PackFormIntoFrame
    # value = [i + element.StartingRowNumber] + value
    # TypeError: can only concatenate list (not "str") to list
    pass
EN

回答 1

Stack Overflow用户

发布于 2020-09-03 10:37:29

你的想法,迭代的生物和建立一个新的名单是正确的。别造出那根奇怪的绳子。

代码语言:javascript
运行
AI代码解释
复制
data = []
for creature in listCreatures:
    data.append([creature["name"], creature["collective"]])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63729060

复制
相关文章
Python | 数据库中的表
表(TABLE)是数据库中用来存储数据的对象,是有结构的数据的集合,是整个数据库系统的基础。SQL数据库中用于存储数据的工具。
算法与编程之美
2021/07/30
1.4K0
Python删除mongodb数据库和用
#!/usr/bin/env python #coding:utf-8 from pymongo import MongoClient client = MongoClient('192.168.6.243', 27017) db=client['admin'] db.authenticate('root','123456') #help(db) #查看python操作mongodb的方法 for i in range(2,900): try: db = client['s%
py3study
2020/01/10
1.4K0
用MongoDB Change Streams 在BigQuery中复制数据
Chang Stream(变更记录流) 是指collection(数据库集合)的变更事件流,应用程序通过db.collection.watch()这样的命令可以获得被监听对象的实时变更。BigQuery是Google推出的一项Web服务,该服务让开发者可以使用Google的架构来运行SQL语句对超级大的数据库进行操作。
MongoDB中文社区
2019/08/26
4.2K0
用MongoDB Change Streams 在BigQuery中复制数据
Python在SQLite数据库中动态创建数据表的思路与实现
在管理信息系统或者动态网站开发时,离不开数据库的使用。以SQLite数据库为例,系统运行时要求数据库和对应的数据表已存在,一种方案是提前建好数据库和所有表,再一种方案是系统初始化时自动创建数据库或者相应的数据表。本文介绍第二种方法的思路和实现,自动测试数据库中是否存在某个表,如果不存在就创建。对于SQLite数据库来说,关键是系统表sqlite_master,这个表中记录了所有用户表的信息。例如:
Python小屋屋主
2018/12/26
4.8K0
MongoDB 在系统数据库local上无法创建用户的解决方法
我们知道,MongoDB的Oplog (operations log)记录了用户的最近一段时间的操作(时间长短主要受设置的oplogSize和程序的写入更新量的影响)。那么,如果其他部门(例如BI团队)需要抽取数据,从 local.oplog.rs中读取解析一个不错的选择。
星哥玩云
2022/08/17
1.8K0
MongoDB 在系统数据库local上无法创建用户的解决方法
python-Python与MongoDB数据库-MongoDB数据库的基本知识
MongoDB是一种开源的、面向文档的NoSQL数据库,它使用JSON类似的文档格式存储数据。MongoDB具有高度的可伸缩性和性能,并且支持复杂的查询和聚合操作。在Python中,我们可以使用pymongo驱动程序来连接和操作MongoDB数据库。
玖叁叁
2023/04/22
7450
python爬虫数据无法插入到数据库中
其实这两处问题的重点都是数据类型转换出现错误,都是无法将list类型的数据转换成str。 第一处的解决方法先将list类型的数据强制转换成str,再在他的两侧添加引号
萌萌哒的瓤瓤
2020/08/26
2.5K0
python爬虫数据无法插入到数据库中
快速在Python中实现数据透视表
几年前,我看到有人在推特上说自己是一个excel专家,然后他们的老板让他们做一个透视表。根据这条推文,那个人立刻惊慌失措,辞掉了工作。这条推文很有趣,我能理解,因为一开始,它们可能会令人困惑,尤其是在excel中。但是不用害怕,数据透视表非常棒,在Python中,它们非常快速和简单。数据透视表是数据科学中一种方便的工具。任何开始数据科学之旅的人都应该熟悉它们。让我们快速地看一下这个过程,在结束的时候,我们会消除对数据透视表的恐惧。
HuangWeiAI
2021/08/24
3K0
快速在Python中实现数据透视表
python操作mongodb数据库
(6) $push: 和 $ pushAll 都是向数组属性添加元素。# 好像两者没啥区别
bear_fish
2018/09/20
1.7K0
Python操作MongoDB数据库
>>> import pymongo #导入模块 >>> client = pymongo.MongoClient('localhost', 27017) #连接服务器 >>> db = client.teacher #连续数据库 >>> teacher = db.teacher #数据集 >>> list(teacher.find()) #查看已有记录 [] >>> wangwu = {'name':'Wangwu', 'age':40, 'sex':'male'} >>> teach
Python小屋屋主
2018/04/16
8740
初探MongoDB中的数据库事务
最近有一个业务需要同时写两个表,并且需要保证数据的正确性。我们的项目线上的 MongoDB 版本是 4.0,查了一下发现 4.0 版本的 MongoDB 已经支持副本集中的事务了,于是做了一下调研。
子润先生
2021/06/18
8790
PHP中的数据库四、mongodb
枕边书
2018/01/04
1.5K0
[1212]Python GUI之PySimpleGUI
最后一个执行后程序会在2s左右自动退出,除了以上的简单的默认函数外,还可以手动设置参数;
周小董
2023/10/10
5960
[1212]Python GUI之PySimpleGUI
把 excel 表中的数据 批量修改到指定数据库表中、根据 excel 表中数据修改数据库表中数据
1. 收到一张 excel 表,要求根据 “转账时间”一列的值批量修改数据库表中 "放款时间"一列的值。
微风-- 轻许--
2019/07/02
4.7K0
把 excel 表中的数据 批量修改到指定数据库表中、根据 excel 表中数据修改数据库表中数据
python数据库-MongoDB的安装(53)
  NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL"。
Se7eN_HOU
2019/07/19
8090
借Djongo之力,在Django中无痛使用MongoDB数据库
Django框架为我们提供了简洁方便的ORM模型供我们对数据库进行各种操作,但是这个“数据库”却并不包括NoSQL的典型——MongoDB。
州的先生
2019/11/21
12K1
借Djongo之力,在Django中无痛使用MongoDB数据库
MONGODB 可以在应用系统中作为核心数据库?
知道最近也会听到一个声音,MONGODB 不能在核心的系统使用, 哎, 2021年了,现在有些系统都没有传统数据库的身影,而代替的是通过ES,REDIS ,Aerospike 这样的数据库来成功上位到这个系统的核心数据库, 那么MONGODB 为什么不可以成为项目的核心数据库?
AustinDatabases
2021/06/10
1.4K0
MONGODB   可以在应用系统中作为核心数据库?
在Express中对MongoDB数据库进行增删改查
这两天跟着B站的Johnny老师学习NodeJs+Express+MongoDB相关的知识点,前后跟着做了1小时搞定NodeJs(Express)的用户注册、登录和授权、Element UI + NodeJs(Express)全栈开发后台管理界面、Express-9-MongoDB删除产品和DELETE请求等系列视频。本篇博客主要是学习在Express中如何对MongoDB数据库进行增删改查。
ccf19881030
2020/02/23
5.4K0
数据库表结构同步,用Python 竟如此高效?
近日,某个QQ 群里的一个朋友提出一个问题,如何将一个DB 的表结构同步给另一个DB。 针对这个问题,我进行了思考与实践,具体的实现代码如下所示:
Wu_Candy
2022/07/04
4910
结合ashx来在DataGrid中显示从数据库中读出的图片
//---------------------------------------BindImage.aspx ----------------------------------------
Java架构师必看
2021/03/22
3.8K0

相似问题

PySimpleGui显示数据库中的数据

13

在Django中显示来自数据库的表

30

无法在edittext中显示来自数据库的数据

11

用Python语言显示SQLite数据库中的表

10

无法在php的表外显示来自数据库的图像

40
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文