我正在将字典列表插入 PostgreSQL 数据库。该列表将快速增长,dict 值(列)的数量约为 30。简化数据:
projects = [
{'name': 'project alpha', 'code': 12, 'active': True},
{'name': 'project beta', 'code': 25, 'active': True},
{'name': 'project charlie', 'code': 46, 'active': False}
]
Run Code Online (Sandbox Code Playgroud)
使用以下代码将数据插入 PostgreSQL 数据库确实有效(如本答案所示),但我担心执行太多查询。
projects = [
{'name': 'project alpha', 'code': 12, 'active': True},
{'name': 'project beta', 'code': 25, 'active': True},
{'name': 'project charlie', 'code': 46, 'active': False}
]
Run Code Online (Sandbox Code Playgroud)
有没有更好的做法?非常感谢您的帮助!
我正在为我的 Django 项目使用pylint-django,我的模型之一如下:
class Registration(models.Model):
date_added = models.DateTimeField(auto_now_add=True)
event = models.ForeignKey(Event, on_delete=models.CASCADE)
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
def __str__(self):
first_name = self.user.first_name
last_name = self.user.last_name
return f'{first_name} {last_name}'
Run Code Online (Sandbox Code Playgroud)
运行pylint,我收到以下警告:
events/models.py:61:21: E1101: Instance of 'str' has no 'first_name' member (no-member)
从 pylint-django 的自述文件中,我了解到这是一个已知问题:
“如果您通过名称(作为字符串)引用外键模型,pylint-django 可能无法找到该模型并且会报告问题,因为它不知道该字段的基础类型是什么。”
我的问题是:我应该怎么做才能解决这个问题?我不想压制所有C0111
警告。
非常感谢您的帮助!
PS:我正在使用 pylint-django 作为对使用 Pylint 与 Django 的回答
我试图在Python中执行一个与Excel中的VLOOKUP非常相似的操作.StackOverflow上有很多与此相关的问题,但它们与这个用例略有不同.希望任何人都可以指导我朝着正确的方向前进.我有以下两个pandas数据帧:
df1 = pd.DataFrame({'Invoice': ['20561', '20562', '20563', '20564'],
'Currency': ['EUR', 'EUR', 'EUR', 'USD']})
df2 = pd.DataFrame({'Ref': ['20561', 'INV20562', 'INV20563BG', '20564'],
'Type': ['01', '03', '04', '02'],
'Amount': ['150', '175', '160', '180'],
'Comment': ['bla', 'bla', 'bla', 'bla']})
print(df1)
Invoice Currency
0 20561 EUR
1 20562 EUR
2 20563 EUR
3 20564 USD
print(df2)
Ref Type Amount Comment
0 20561 01 150 bla
1 INV20562 03 175 bla
2 INV20563BG 04 160 bla
3 20564 02 180 bla
Run Code Online (Sandbox Code Playgroud)
现在我想创建一个新的数据帧(df3),我根据发票号码将两者结合起来.问题是发票号码并不总是"完全匹配",但有时在df2 ['Ref']中是"部分匹配".因此,加入"发票"并未提供所需的输出,因为它不会复制发票20562和20563的数据,请参阅下文:
df3 = df1.join(df2.set_index('Ref'), …
Run Code Online (Sandbox Code Playgroud) 我有一个关于使用 PyCharm IDE 进行 Python 覆盖率测试的非常基本的问题。在我的 Django 模型中,__str__
我的测试并未涵盖所有方法。
class Category(models.Model):
name = models.CharField(max_length=100)
def __str__(self):
return self.name
Run Code Online (Sandbox Code Playgroud)
测试这些的适当方法是什么?
这不起作用,测试运行但该__str__
方法仍然没有被视为被覆盖。
class TestCategory(TestCase):
def test_category(self):
category = Category.objects.create(name='Test Category')
self.assertEqual(category.__str__(), 'Test Category')
Run Code Online (Sandbox Code Playgroud) 不幸的是,我收到错误消息:HTTP 状态 403 - 使用以下 Python 代码时不允许机器人。
import requests
URL = 'http://api.glassdoor.com/api/api.htm?v=1&format=json&t.p={PartnerID}&t.k={Key}&action=employers&q=pharmaceuticals&userip={IP_address}&useragent=Mozilla/%2F4.0'
response = requests.get(URL)
print(response)
Run Code Online (Sandbox Code Playgroud)
当我从浏览器尝试 URL 时,该 URL 确实有效。我该怎么做才能让它从代码中工作?
更新:已解决。
抱歉没有以正确的方式发布问题(我是新来的)。
python ×4
django ×2
python-3.x ×2
coverage.py ×1
dataframe ×1
join ×1
pandas ×1
postgresql ×1
psycopg2 ×1
pycharm ×1
pylint ×1
unit-testing ×1