【问题标题】:I want to remove u from the output file我想从输出文件中删除你
【发布时间】:2018-08-23 14:01:10
【问题描述】:

我有python生成的输出

(u'PK_LampFactoryTest',)
(u'DF__Thermosta__Enabl__7B264821',)
(u'filestream_tombstone_2073058421',)
(u'RetentionSettings',)
(u'Alarms',)
(u'syscommittab',)

sqlquery = '从 sys.objects 中选择名称' cursor.execute(sqlquery)

    #conn.commit()
    for row in cursor:
        print(row)

【问题讨论】:

  • Removing u in list的可能重复
  • u只是表示它是unicode
  • 你的row 是一个元组。如果你只是简单地打印它,Python 将打印元组的repl,也就是说,你必须在 Python 源代码中输入什么来创建一个等效的数据结构。这包括 row 是一个包含 Unicode 字符串的 1 元组这一事实。如果您不喜欢这种格式,请不要让print() 打印整个数据结构。只需打印您想查看的数据:例如,print(row[0])
  • @BoarGules 好的,知道了。我想获取 schema 的详细信息。我的意思是没有任何数据的数据库结构,所以如果我会 print(row[0]) 。它会覆盖所有架构吗
  • @A.Ranjan 抱歉,这个问题是特定于 DBMS 的。在其他 DBMS 中,该表可能被称为其他名称,或者可能根本不是表。所以我不确定你的查询返回什么或者你的代码应该如何处理它得到的。当然,我可以猜测,但根据我的经验,有根据的猜测对于 SO 来说不够具体。

标签: python


【解决方案1】:

u 只是表示它是 unicode。 一个简单的解决方法是

for row in cursor:
     print(row.encode('ascii', 'ignore'))

但那是在不了解代码的大局的情况下,只会使打印语句看起来不错(通过对字符串进行编码)

【讨论】:

    【解决方案2】:

    试试看:

    import json, ast
    
    for row in cursor:
        print(ast.literal_eval(json.dumps(row)))
    

    【讨论】:

    • 它删除了 u 但它给出了 ['DF__PluginApp__Admin__7908F585'] ['ServiceBrokerQueue'] ['LampFactoryTest'] 我只想要名称 .no special character 。有什么办法吗。
    • no special character 是什么意思?你能举个例子吗?
    • ['sysrscols'] 这里我不想要括号和冒号只是名称。我使用 python 脚本从 sql server 获取架构的详细信息
    • 如果在print 语句中将row 替换为row[0] 会不会有帮助?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多